diff --git a/core/passport.js b/core/passport.js index 51f7b9d..f50abd3 100644 --- a/core/passport.js +++ b/core/passport.js @@ -69,22 +69,27 @@ const localPhoneOptions = { passport.use('local-phone', new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => { try { + //Comprobamos si el usuario ya existe en nuestro sistema const user = await authService.extraMethods.findUser({ phone, fbuid }); if (_.isNull(user)) { admin.auth().getUserByPhoneNumber(phone) .then(function(userRecord) { + console.log(userRecord.toJSON()); if (userRecord && userRecord.toJSON().uid == fbuid) { - console.log(userRecord.toJSON()); - console.log('DEBO COMPROBAR EL ESTADO DEL MOVIL SI ESTA HABILITADO O NO'); - const user = authService.extraMethods.createUser({phone, fbuid}); - console.log('dar de alta el usuario') - } - else { - console.log("Me quieres engaƱar "); - return done(null, false, { message: 'User not validate in fb' }) - } - }) + if (userRecord.toJSON().disabled) { + console.log('aaaaa'); + return done(null, false, { message: 'User disabled in fb' }); + } + else { + console.log('bbbbbb'); + return done(null, true, { message: 'Register user' }); + } + } + else { + return done(null, false, { message: 'User not validate in fb' }) + } + }) .catch(function (error) { return done(null, user, error); }) diff --git a/modules/auth/auth.controller.js b/modules/auth/auth.controller.js index 10ea7ed..03ad82c 100644 --- a/modules/auth/auth.controller.js +++ b/modules/auth/auth.controller.js @@ -5,6 +5,7 @@ const httpStatus = require('http-status'); const controllerHelper = require('../../helpers/controller.helper'); const messageHelper = require('../../helpers/message.helper'); const securityHelper = require('../../helpers/security.helper'); +const authService = require('./auth.service'); //////////////////////////////////////////////////////////////////////////////// @@ -42,16 +43,31 @@ async function login(req, res, next) { async function register(req, res, next) { try { - const data = { - phone: req.user.phone, - platform: req.body.platform, +console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>regsitro'); + + const values = { + phone: req.body.phone, + platform: req.body.fbuid }; - //console.log(req); - console.log("Recoger datos del movil y guardar token en devices "); + const token = securityHelper.generateToken(values); + + const data = { + token : token, + phone: req.body.phone, + fbuid: req.body.fbuid, + email: req.body.email, + name: req.body.name, + surname: req.body.surname, + entityid: req.body.entityid, + entityname: req.body.entityname, + profile_picture: req.body.profile_picture, + accessibility: req.body.accessibility, + }; + console.log(data); res.json({ - token: securityHelper.generateToken(data), - user: data, - }); + user: await authService.extraMethods.createUser(data), + }); + } catch (error) { controllerHelper.handleErrorResponse(MODULE_NAME, register.name, error, res) diff --git a/modules/auth/auth.validations.js b/modules/auth/auth.validations.js index 66a519a..b8bca81 100644 --- a/modules/auth/auth.validations.js +++ b/modules/auth/auth.validations.js @@ -7,7 +7,14 @@ const LoginInputType = Joi.object().keys({ const RegisterInputType = Joi.object().keys({ phone: Joi.string().required(), - fbuid: Joi.string().required(), + email: Joi.string().required(), + fbuid: Joi.string().required(), + name: Joi.string().required(), + surname: Joi.string(), + entityid: Joi.string(), + entityname: Joi.string(), + profile_picture: Joi.string(), + accessibility: Joi.string(), }); const LoginOutputType = Joi.object().keys({ diff --git a/modules/auth/user.model.js b/modules/auth/user.model.js index c1a88d9..bedd8bd 100644 --- a/modules/auth/user.model.js +++ b/modules/auth/user.model.js @@ -45,6 +45,13 @@ module.exports = function (sequelize, DataTypes) { type: DataTypes.BOOLEAN, defaultValue: true, }, + token: { + type: DataTypes.STRING, + }, + state: { + type: DataTypes.STRING, + defaultValue: 'borrador', + }, lastlogin: { type: DataTypes.DATE, defaultValue: null, diff --git a/modules/entities/entity.controller.js b/modules/entities/entity.controller.js new file mode 100644 index 0000000..b551746 --- /dev/null +++ b/modules/entities/entity.controller.js @@ -0,0 +1,14 @@ +'use strict'; + +const generateControllers = require('../../core/controllers'); +const entityService = require('./entity.service'); + + +// Module Name +const MODULE_NAME = '[entity.controller]'; + +const controllerOptions = { MODULE_NAME }; +const extraControllers = {}; + +module.exports = generateControllers(entityService, extraControllers, controllerOptions); + diff --git a/modules/entities/entity.routes.js b/modules/entities/entity.routes.js new file mode 100644 index 0000000..5aae5cc --- /dev/null +++ b/modules/entities/entity.routes.js @@ -0,0 +1,21 @@ +const routes = require('express').Router(); + +const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator'); +const SchemaValidator = require('../../middlewares/schemaValidator'); + +/*const PaginateMiddleware = require('../../middlewares/paginate'); +const FieldMiddleware = require('../../middlewares/fields');*/ +//const SortMiddleware = require('../../middlewares/sort'); + +//const entityValidation = require('./entity.validations'); +const entityController = require('./entity.controller'); + +routes.get('/entities', entityController.find); +//routes.get('/venues', isLoggedUser, SortMiddleware.middleware({ default: "name" }), venueController.find); +//routes.get('/venues/:id', isLoggedUser, venueController.findOne); + +//routes.post('/entity/', SchemaValidator(VenueValidation.VenueInputType, true), venueController.create); +//routes.put('/venues/:id', isAdministratorUser, venueController.update); +//routes.delete('/venues/:id', isAdministratorUser, venueController.delete); + +module.exports = routes; \ No newline at end of file diff --git a/modules/entities/entity.service.js b/modules/entities/entity.service.js new file mode 100644 index 0000000..28710ee --- /dev/null +++ b/modules/entities/entity.service.js @@ -0,0 +1,10 @@ +/* global Venue */ +'use strict'; + +const _ = require('lodash'); +const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); +const models = require('../../core/models'); + +const extraMethods = {}; + +module.exports = generateService(models.Entity, extraMethods); \ No newline at end of file diff --git a/modules/entities/entity.validations.js b/modules/entities/entity.validations.js new file mode 100644 index 0000000..6b674dc --- /dev/null +++ b/modules/entities/entity.validations.js @@ -0,0 +1,15 @@ +const Joi = require('joi'); + +//const EntityInputType = Joi.object().keys({ +// name: Joi.string().required(), +//}); +/* +const EntityOutputType = Joi.object().keys({ + name: Joi.string().required(), +}); +*/ + +//module.exports = { +// EntityInputType, +// EntityOutputType +//};