1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-21 22:29:42 +02:00
planka/client/src/api/comments.js
Maksim Eltyshev 2ee1166747 feat: Version 2
Closes #627, closes #1047
2025-05-10 02:09:06 +02:00

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,
};