Preparado para registro de usuarios

This commit is contained in:
David Arranz 2019-07-08 13:11:40 +02:00
parent e99c3ac003
commit 0f0f548c49
8 changed files with 114 additions and 19 deletions

View File

@ -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);
})

View File

@ -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)

View File

@ -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({

View File

@ -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,

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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
//};