1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 13:19:44 +02:00
planka/server/api/helpers/notifications/update-many.js

48 lines
1 KiB
JavaScript

module.exports = {
inputs: {
recordsOrIds: {
type: 'json',
custom: (value) => _.every(value, _.isObjectLike) || _.every(value, _.isString),
required: true,
},
values: {
type: 'json',
required: true,
},
user: {
type: 'ref',
},
request: {
type: 'ref',
},
},
async fn(inputs) {
const criteria = {};
if (_.every(inputs.recordsOrIds, _.isObjectLike)) {
criteria.id = sails.helpers.utils.mapRecords(inputs.recordsOrIds);
} else if (_.every(inputs.recordsOrIds, _.isString)) {
criteria.id = inputs.recordsOrIds;
}
if (inputs.user) {
criteria.userId = inputs.user.id;
}
const notifications = await Notification.update(criteria).set(inputs.values).fetch();
notifications.forEach((notification) => {
sails.sockets.broadcast(
`user:${notification.userId}`,
'notificationUpdate',
{
item: notification,
},
inputs.request,
);
});
return notifications;
},
};