app2-api/modules/auth/user.service.js

41 lines
1.4 KiB
JavaScript
Raw Normal View History

2019-07-19 17:39:19 +00:00
/* global User */
'use strict';
const _ = require('lodash');
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
const models = require('../../core/models');
2019-07-20 16:11:43 +00:00
const Sequelize = require('sequelize');
2019-07-19 17:39:19 +00:00
const extraMethods = {
2019-07-20 16:11:43 +00:00
_getOrCreateUser: async (dataUser) => {
let result = null;
if (dataUser.userResult) {
result = { user: dataUser.userResult, isCreated: false};
} else {
await models.User.findOrCreate({
where: {
2019-08-13 18:00:27 +00:00
phone: (dataUser.phone)? dataUser.phone : null, //puede que al venir la solicitud por web no venga el phone
2019-07-23 13:50:48 +00:00
email: dataUser.email,
2019-07-20 16:11:43 +00:00
},
2019-08-13 18:00:27 +00:00
include: [{ model: models.Entity }],
2019-07-20 16:11:43 +00:00
defaults: {
phone: dataUser.phone,
email: dataUser.email,
name: dataUser.name,
surname: dataUser.surname,
entityId: dataUser.entityId,
// password: crypto.createHash('sha512').update(user.phone).digest('hex'),
}
}).then(([user, created]) => {
user = user.toJSON();
result = {user: user, isCreated: created}});
2019-07-19 17:39:19 +00:00
}
2019-07-20 16:11:43 +00:00
return result;
2019-07-19 17:39:19 +00:00
}
};
module.exports = generateService(models.User, extraMethods);