File: /var/dev/nowruzgan/rest/api/controllers/user/update-me.js
module.exports = {
friendlyName: 'Update me',
description: '',
inputs: {
firstName: {
type: 'string',
},
lastName: {
type: 'string',
},
},
exits: {
forbidden: { statusCode: 403 },
notFound: { statusCode: 404 },
dbError: { statusCode: 500 },
},
getActions: () => ({'user.update-me': 'تغییر مشخصات خودم'}),
fn: async function (inputs, exits) {
let session = this.req.sessionData;
let action = 'user.update-me';
await sails.helpers.permit(action, session).intercept('reject', 'forbidden');
sails.log.info({session, action, message: `updating user info`});
if(!session.user) return exits.notFound();
let user = await User.findOne({id: session.user.id})
.intercept(sails.log.interceptError(session, action, `on finding the user`, 'dbError'));
if(inputs.firstName!==undefined)
user.firstName = inputs.firstName;
if(inputs.lastName!==undefined)
user.lastName = inputs.lastName;
await User.update({id: user.id}, {firstName: inputs.firstName, lastName: inputs.lastName})
.intercept(sails.log.interceptError(session, action, `on updating the user`, 'dbError'));
let sessionData = {
user: {
id: user.id,
firstName: user.firstName,
lastName: user.lastName,
phone: user.phone,
role: user.role,
subscriptionType: user.subscriptionType,
bazaarSubscription: user.bazaarSubscription,
bazaarSubscribedSKU: user.bazaarSubscribedSKU,
bazaarSubscriptionExpiration: user.bazaarSubscriptionExpiration,
},
userPrivate: user,
token: session.token,
timestamp: (new Date()).valueOf()
}
await sails.helpers.cache.with({action: 'set', key: `${session.token}:session`, value: session});
return exits.success(user);
}
};