1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-24 15:49:46 +02:00

Project managers, board members, auto-update after reconnection, refactoring

This commit is contained in:
Maksim Eltyshev 2021-06-24 01:05:22 +05:00
parent d6cb1f6683
commit b39119ace4
478 changed files with 21226 additions and 19495 deletions

View file

@ -0,0 +1,29 @@
module.exports = {
inputs: {
userOrId: {
type: 'ref',
custom: (value) => _.isObjectLike(value) || _.isString(value),
required: true,
},
action: {
type: 'ref',
required: true,
},
},
async fn(inputs) {
const { userId = inputs.userOrId } = inputs.userOrId;
const notification = await Notification.create({
userId,
actionId: inputs.action.id,
cardId: inputs.action.cardId,
}).fetch();
sails.sockets.broadcast(`user:${userId}`, 'notificationCreate', {
item: notification,
});
return notification;
},
};

View file

@ -0,0 +1,12 @@
module.exports = {
inputs: {
criteria: {
type: 'json',
custom: (value) => _.isArray(value) || _.isPlainObject(value),
},
},
async fn(inputs) {
return Notification.find(inputs.criteria).sort('id DESC');
},
};

View file

@ -0,0 +1,48 @@
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;
},
};