56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
/* global User */
|
|
'use strict';
|
|
|
|
const _ = require('lodash');
|
|
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
|
const models = require('../../core/models');
|
|
const Sequelize = require('sequelize');
|
|
|
|
const extraMethods = {
|
|
|
|
_getUserByEmail: async (email) => {
|
|
return models.User.findOne({
|
|
where: {
|
|
email: email,
|
|
},
|
|
})
|
|
},
|
|
|
|
_getUserById: async (Id) => {
|
|
return models.User.findOne({
|
|
where: {
|
|
id: Id,
|
|
},
|
|
})
|
|
},
|
|
|
|
_getOrCreateUser: async (dataUser) => {
|
|
|
|
let result = null;
|
|
|
|
if (dataUser.userResult) {
|
|
result = { user: dataUser.userResult, isCreated: false};
|
|
} else {
|
|
await models.User.findOrCreate({
|
|
where: {
|
|
phone: (dataUser.phone)? dataUser.phone : null, //puede que al venir la solicitud por web no venga el phone
|
|
email: dataUser.email,
|
|
},
|
|
include: [{ model: models.Entity }],
|
|
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}});
|
|
}
|
|
return result;
|
|
},
|
|
};
|
|
|
|
module.exports = generateService(models.User, extraMethods); |