2019-08-31 04:07:25 +05:00
|
|
|
import socket from './socket';
|
|
|
|
|
|
|
|
/* Transformers */
|
|
|
|
|
2020-03-25 00:15:47 +05:00
|
|
|
export const transformCard = (card) => ({
|
2019-08-31 04:07:25 +05:00
|
|
|
...card,
|
2019-10-25 21:38:14 +05:00
|
|
|
...(card.dueDate && {
|
|
|
|
dueDate: new Date(card.dueDate),
|
|
|
|
}),
|
|
|
|
...(card.timer && {
|
|
|
|
timer: {
|
|
|
|
...card.timer,
|
|
|
|
...(card.timer.startedAt && {
|
|
|
|
startedAt: new Date(card.timer.startedAt),
|
|
|
|
}),
|
|
|
|
},
|
|
|
|
}),
|
2019-08-31 04:07:25 +05:00
|
|
|
});
|
|
|
|
|
2020-03-25 00:15:47 +05:00
|
|
|
export const transformCardData = (data) => ({
|
2019-08-31 04:07:25 +05:00
|
|
|
...data,
|
2019-10-05 06:12:36 +05:00
|
|
|
...(data.dueDate && {
|
|
|
|
dueDate: data.dueDate.toISOString(),
|
2019-08-31 04:07:25 +05:00
|
|
|
}),
|
|
|
|
...(data.timer && {
|
2019-10-25 21:38:14 +05:00
|
|
|
timer: {
|
|
|
|
...data.timer,
|
|
|
|
...(data.timer.startedAt && {
|
|
|
|
startedAt: data.timer.startedAt.toISOString(),
|
|
|
|
}),
|
|
|
|
},
|
2019-08-31 04:07:25 +05:00
|
|
|
}),
|
|
|
|
});
|
|
|
|
|
|
|
|
/* Actions */
|
|
|
|
|
2020-02-03 18:42:31 +05:00
|
|
|
const createCard = (listId, data, headers) =>
|
2020-03-25 00:15:47 +05:00
|
|
|
socket.post(`/lists/${listId}/cards`, transformCardData(data), headers).then((body) => ({
|
2020-02-03 18:42:31 +05:00
|
|
|
...body,
|
|
|
|
item: transformCard(body.item),
|
|
|
|
}));
|
2019-08-31 04:07:25 +05:00
|
|
|
|
2020-02-03 18:42:31 +05:00
|
|
|
const getCard = (id, headers) =>
|
2020-03-25 00:15:47 +05:00
|
|
|
socket.get(`/cards/${id}`, undefined, headers).then((body) => ({
|
2020-02-03 18:42:31 +05:00
|
|
|
...body,
|
|
|
|
item: transformCard(body.item),
|
|
|
|
}));
|
2019-08-31 04:07:25 +05:00
|
|
|
|
2020-02-03 18:42:31 +05:00
|
|
|
const updateCard = (id, data, headers) =>
|
2020-03-25 00:15:47 +05:00
|
|
|
socket.patch(`/cards/${id}`, transformCardData(data), headers).then((body) => ({
|
2020-02-03 18:42:31 +05:00
|
|
|
...body,
|
|
|
|
item: transformCard(body.item),
|
|
|
|
}));
|
2019-08-31 04:07:25 +05:00
|
|
|
|
2020-02-03 18:42:31 +05:00
|
|
|
const deleteCard = (id, headers) =>
|
2020-03-25 00:15:47 +05:00
|
|
|
socket.delete(`/cards/${id}`, undefined, headers).then((body) => ({
|
2020-02-03 18:42:31 +05:00
|
|
|
...body,
|
|
|
|
item: transformCard(body.item),
|
|
|
|
}));
|
2019-08-31 04:07:25 +05:00
|
|
|
|
|
|
|
/* Event handlers */
|
|
|
|
|
2020-03-25 00:15:47 +05:00
|
|
|
const makeHandleCardCreate = (next) => (body) => {
|
2019-08-31 04:07:25 +05:00
|
|
|
next({
|
|
|
|
...body,
|
|
|
|
item: transformCard(body.item),
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const makeHandleCardUpdate = makeHandleCardCreate;
|
|
|
|
|
|
|
|
const makeHandleCardDelete = makeHandleCardCreate;
|
|
|
|
|
|
|
|
export default {
|
|
|
|
createCard,
|
|
|
|
getCard,
|
|
|
|
updateCard,
|
|
|
|
deleteCard,
|
|
|
|
makeHandleCardCreate,
|
|
|
|
makeHandleCardUpdate,
|
|
|
|
makeHandleCardDelete,
|
|
|
|
};
|