/* 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 = { _getOrCreateUser: async (dataUser) => { let result = null; if (dataUser.userResult) { result = { user: dataUser.userResult, isCreated: false}; } else { await models.User.findOrCreate({ where: { [Sequelize.Op.or] : [ {phone: dataUser.phone}, {email: dataUser.email} ] }, 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);