1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-21 14:19:44 +02:00
planka/client/src/api/notifications.js

62 lines
1.5 KiB
JavaScript
Raw Normal View History

2022-08-04 13:31:14 +02:00
import omit from 'lodash/omit';
2019-08-31 04:07:25 +05:00
import socket from './socket';
import { transformCard } from './cards';
2022-08-04 13:31:14 +02:00
import { transformActivity } from './activities';
/* Transformers */
export const transformNotification = (notification) => ({
...omit(notification, 'actionId'),
activityId: notification.actionId,
});
2019-08-31 04:07:25 +05:00
/* Actions */
const getNotifications = () =>
socket.get('/notifications').then((body) => ({
...body,
2022-08-04 13:31:14 +02:00
items: body.items.map(transformNotification),
included: {
2022-08-04 13:31:14 +02:00
...omit(body.included, 'actions'),
cards: body.included.cards.map(transformCard),
2022-08-04 13:31:14 +02:00
activities: body.included.actions.map(transformActivity),
},
}));
2019-08-31 04:07:25 +05:00
const getNotification = (id) =>
socket.get(`/notifications/${id}`).then((body) => ({
2019-08-31 04:07:25 +05:00
...body,
2022-08-04 13:31:14 +02:00
item: transformNotification(body.item),
2019-08-31 04:07:25 +05:00
included: {
2022-08-04 13:31:14 +02:00
...omit(body.included, 'actions'),
2019-08-31 04:07:25 +05:00
cards: body.included.cards.map(transformCard),
2022-08-04 13:31:14 +02:00
activities: body.included.actions.map(transformActivity),
2019-08-31 04:07:25 +05:00
},
}));
2022-08-04 13:31:14 +02:00
const updateNotifications = (ids, data) =>
socket.patch(`/notifications/${ids.join(',')}`, data).then((body) => ({
...body,
items: body.items.map(transformNotification),
}));
/* Event handlers */
const makeHandleNotificationCreate = (next) => (body) => {
next({
...body,
item: transformNotification(body.item),
});
};
const makeHandleNotificationUpdate = makeHandleNotificationCreate;
2019-08-31 04:07:25 +05:00
export default {
getNotifications,
getNotification,
2019-08-31 04:07:25 +05:00
updateNotifications,
2022-08-04 13:31:14 +02:00
makeHandleNotificationCreate,
makeHandleNotificationUpdate,
2019-08-31 04:07:25 +05:00
};