From 2926e5cf21afb7dbe332f08f050bc6dc1a87c4e8 Mon Sep 17 00:00:00 2001 From: David Arranz Date: Fri, 30 Aug 2024 11:14:50 +0200 Subject: [PATCH] . --- core/passport.js | 2 +- modules/auth/auth.controller.js | 36 +++++++++++++++++++-------------- modules/auth/user.service.js | 24 +++++++++++++--------- 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/core/passport.js b/core/passport.js index e9af671..aa32b0f 100644 --- a/core/passport.js +++ b/core/passport.js @@ -124,7 +124,7 @@ passport.use("api-key", const result = securityHelper.verify(token); if (result) { console.log('Valid API KEY'); - return done(null, null, { message: "Valid API KEY" }); + return done(null, {}, { message: "Valid API KEY" }); } else { //console.log('Token no válido'); console.error("Unauthorized. Invalid token."); diff --git a/modules/auth/auth.controller.js b/modules/auth/auth.controller.js index ff18a6a..373cc85 100644 --- a/modules/auth/auth.controller.js +++ b/modules/auth/auth.controller.js @@ -308,17 +308,23 @@ async function getOrCreateUser(req, res, next) { ); //Iniciamos el usuario relacionadas con la inscripción. - let dataUser = { - id: req.user ? req.user.id : null, - phone: req.user ? req.user.phone : null, //((req.body.phone != '+34') ? req.body.phone : null), lo quitamos de momento por la de movistar - name: req.user ? req.user.name : req.body.name, - surname: req.user ? req.user.surname : req.body.surname, - email: req.user ? req.user.email : req.body.email, - entityId: null, - entityName: null, - entityLevel: null, - userResult: req.user ? req.user : null, - }; + let dataUser; + //OJO API V4 El relleno lo hago dentro de _getOrCreateUserWEBV4 + if (_.isEmpty(req.user)) + dataUser = {} + else { + dataUser = { + id: req.user ? req.user.id : null, + phone: req.user ? req.user.phone : null, //((req.body.phone != '+34') ? req.body.phone : null), lo quitamos de momento por la de movistar + name: req.user ? req.user.name : req.body.name, + surname: req.user ? req.user.surname : req.body.surname, + email: req.user ? req.user.email : req.body.email, + entityId: null, + entityName: null, + entityLevel: null, + userResult: req.user ? req.user : null, + }; + } //Asignamos a los datos del usuario a crear, el id de la entidad a la que pertenece, este caso solo es necesario cuando viene la inscripción por web ya que hay que crear un usuario nuevo if (dataInscription.reservation) { @@ -328,17 +334,17 @@ async function getOrCreateUser(req, res, next) { //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 { - console.log('req.user>>>>>>>>', dataUser); - //CHAPUZA PARA PODER DAR DE ALTA USUARIOS CON EL MISMO CORREO ELECTRONICO, PERO DISTINTO NOMBRE Y APELLIDO. + if (req.user) //web { //MAPEO SALIDA API4 //Caso API V4 user {} if (_.isEmpty(req.user)) dataUser.userResult = await userService._getOrCreateUserWEBV4(dataUser, req); - //Caso Formulario web página actual + //Si viene user relleno viene por APP else dataUser.userResult = await userService._getOrCreateUser(dataUser); - } //Si viene user relleno viene por APP + } //Caso Formulario web página actual + //CHAPUZA SE PERMITE DAR DE ALTA USUARIOS CON EL MISMO CORREO ELECTRONICO, PERO DISTINTO NOMBRE Y APELLIDO. else dataUser.userResult = await userService._getOrCreateUserWEB(dataUser); console.log('CHAPUZAAAAAAAAAA2>>>', dataUser.userResult); diff --git a/modules/auth/user.service.js b/modules/auth/user.service.js index 9faddce..2158711 100644 --- a/modules/auth/user.service.js +++ b/modules/auth/user.service.js @@ -119,8 +119,17 @@ const extraMethods = { _getOrCreateUserWEBV4: async (dataUser, req) => { let result = null; - //rellenamos campos nuevos de formulario web - dataUser.country = req.country? req.country : 'ES'; + dataUser = { + name: req.body.name ? req.body.name : null, + surname: req.body.surname ? req.body.surname : null, + email: req.body.email ? req.body.email : null, + profile: req.body.profile ? req.body.profile : 'guest', + country: req.body.country ? req.body.country : 'ES', + entityId: dataUser.entityId ? dataUser.entityId : req.body.entityId, + entityName: null, + entityLevel: null, + userResult: null, + }; console.log('_getOrCreateUserWEBV4>>>>>>><', dataUser); @@ -129,22 +138,17 @@ const extraMethods = { } 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, - country: dataUser.country, }, include: [{ model: models.Entity }], defaults: { - phone: dataUser.phone, email: dataUser.email, name: dataUser.name, surname: dataUser.surname, - //entityId: dataUser.entityId, + profile: dataUser.profile, + country: dataUser.country, + entityId: dataUser.entityId, type: "onsite", - profile: "guest", - country: "ES", // password: crypto.createHash('sha512').update(user.phone).digest('hex'), }, }).then(([user, created]) => {