const valuesValidator = (value) => { if (!_.isPlainObject(value)) { return false; } if (!_.isPlainObject(value.user) && !_.isString(value.userId)) { return false; } if (!_.isPlainObject(value.action)) { return false; } return true; }; module.exports = { inputs: { values: { type: 'ref', custom: valuesValidator, required: true, }, }, async fn(inputs) { const { values } = inputs; if (values.user) { values.userId = values.user.id; } const notification = await Notification.create({ ...values, actionId: values.action.id, cardId: values.action.cardId, }).fetch(); sails.sockets.broadcast(`user:${notification.userId}`, 'notificationCreate', { item: notification, }); return notification; }, };