module.exports = { inputs: { record: { type: 'ref', required: true }, request: { type: 'ref' } }, fn: async function(inputs, exits) { await ProjectMembership.destroy({ userId: inputs.record.id }); await CardSubscription.destroy({ userId: inputs.record.id }); await CardMembership.destroy({ userId: inputs.record.id }); const user = await User.updateOne({ id: inputs.record.id, deletedAt: null }).set({ deletedAt: new Date().toUTCString() }); if (user) { const adminUserIds = await sails.helpers.getAdminUserIds(); const projectIds = await sails.helpers.getMembershipProjectIdsForUser( user.id ); const userIdsForProject = await sails.helpers.getMembershipUserIdsForProject( projectIds ); const userIds = _.union([user.id], adminUserIds, userIdsForProject); userIds.forEach(userId => { sails.sockets.broadcast( `user:${userId}`, 'userDelete', { item: user }, inputs.request ); }); } return exits.success(user); } };