This commit is contained in:
David Arranz 2019-09-10 17:07:22 +02:00
parent d5feef5b67
commit c0228c6f20
2 changed files with 44 additions and 3 deletions

View File

@ -63,6 +63,37 @@ const extraMethods = {
}
return result;
},
_getOrCreateUserWEB: 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,
name: dataUser.name,
surname: dataUser.surname
},
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);

View File

@ -37,8 +37,12 @@ const extraControllers = {
try {
const result = await eventReservationService._getReservaByCode(eventId, registrationCode);
if (appVersion && (appVersion == '1.0.3'))
return handleResultResponse(result, null, params, res, httpStatus.OK)
if (appVersion) {
if ((appVersion == '1.0.0') || (appVersion == '1.0.1') || (appVersion == '1.0.2'))
return handleResultResponse(!!result, null, params, res, httpStatus.OK)
else
return handleResultResponse(result, null, params, res, httpStatus.OK);
}
else
return handleResultResponse(!!result, null, params, res, httpStatus.OK);
} catch(error) {
@ -276,7 +280,13 @@ console.log('CREATE INSCRIPTION>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>< ', params);
//creamos o recuperamos el usuario teniendo en cuenta que pude venir por APP o WEB
//si viene por web se tendra en cuenta el email y si viene por APP el phone para buscar
try {
dataUser.userResult = await userService._getOrCreateUser(dataUser);
//CHAPUZA PARA PODER DAR DE ALTA USUARIOS CON EL MISMO CORREO ELECTRONICO, PERO DISTINTO NOMBRE Y APELLIDO.
if (req.user) //? 'app' : 'web', //En el caso de tener ya usuario viene por APP sino viene por web
dataUser.userResult = await userService._getOrCreateUser(dataUser)
else
dataUser.userResult = await userService._getOrCreateUserWEB(dataUser);
if (!dataUser.userResult) {
// No se ha encontrado
return handleResultResponse("No se ha podido crear o encontrar el usuario dado", null, params, res, httpStatus.NOT_FOUND);