mirror of
https://github.com/plankanban/planka.git
synced 2025-07-21 22:29:42 +02:00
64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
/*!
|
|
* Copyright (c) 2024 PLANKA Software GmbH
|
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
|
*/
|
|
|
|
import socket from './socket';
|
|
|
|
/* Transformers */
|
|
|
|
export const transformComment = (comment) => ({
|
|
...comment,
|
|
...(comment.createdAt && {
|
|
createdAt: new Date(comment.createdAt),
|
|
}),
|
|
});
|
|
|
|
/* Actions */
|
|
|
|
const getComments = (cardId, data, headers) =>
|
|
socket.get(`/cards/${cardId}/comments`, data, headers).then((body) => ({
|
|
...body,
|
|
items: body.items.map(transformComment),
|
|
}));
|
|
|
|
const createComment = (cardId, data, headers) =>
|
|
socket.post(`/cards/${cardId}/comments`, data, headers).then((body) => ({
|
|
...body,
|
|
item: transformComment(body.item),
|
|
}));
|
|
|
|
const updateComment = (id, data, headers) =>
|
|
socket.patch(`/comments/${id}`, data, headers).then((body) => ({
|
|
...body,
|
|
item: transformComment(body.item),
|
|
}));
|
|
|
|
const deleteComment = (id, headers) =>
|
|
socket.delete(`/comments/${id}`, undefined, headers).then((body) => ({
|
|
...body,
|
|
item: transformComment(body.item),
|
|
}));
|
|
|
|
/* Event handlers */
|
|
|
|
const makeHandleCommentCreate = (next) => (body) => {
|
|
next({
|
|
...body,
|
|
item: transformComment(body.item),
|
|
});
|
|
};
|
|
|
|
const makeHandleCommentUpdate = makeHandleCommentCreate;
|
|
|
|
const makeHandleCommentDelete = makeHandleCommentUpdate;
|
|
|
|
export default {
|
|
getComments,
|
|
createComment,
|
|
updateComment,
|
|
deleteComment,
|
|
makeHandleCommentCreate,
|
|
makeHandleCommentUpdate,
|
|
makeHandleCommentDelete,
|
|
};
|