Notificaciones push
This commit is contained in:
parent
c1bd3bed18
commit
1425134736
@ -101,7 +101,7 @@ console.log('PASSPORT - local-phone');
|
||||
passport.use('jwt', new CustomStrategy(async (req, done) => {
|
||||
const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null);
|
||||
const appVersion = ((req && req.headers && req.headers['accept-version']) ? req.headers['accept-version'] : null);
|
||||
console.log('appVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErsion: ', appVersion);
|
||||
console.log('appVersion: ', appVersion);
|
||||
|
||||
if (!token) {
|
||||
//console.log('no tengo token');
|
||||
@ -119,7 +119,6 @@ passport.use('jwt', new CustomStrategy(async (req, done) => {
|
||||
if (appVersion) {
|
||||
if (user.app_version != appVersion){
|
||||
const result = userService._updateLastLoginAndVersionUser(user.id, appVersion);
|
||||
console.log('PRUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEBA>>>> ', result);
|
||||
user.app_version = appVersion;
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ async function login(req, res, next) {
|
||||
async function loginWithPhone(req, res, next) {
|
||||
try {
|
||||
const appVersion = ((req && req.headers && req.headers['accept-version']) ? req.headers['accept-version'] : null);
|
||||
console.log('loginWithPhone - appVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErsion: ', appVersion);
|
||||
console.log('loginWithPhone - appVersion: ', appVersion);
|
||||
|
||||
console.log(req.user);
|
||||
const findOptions = {
|
||||
@ -114,7 +114,7 @@ async function register(req, res, next) {
|
||||
};
|
||||
|
||||
const appVersion = ((req && req.headers && req.headers['accept-version']) ? req.headers['accept-version'] : null);
|
||||
console.log('loginWithPhone - appVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErsion: ', appVersion);
|
||||
console.log('loginWithPhone - appVersion: ', appVersion);
|
||||
|
||||
|
||||
//Comprobamos si el usuario ya existe en nuestro sistema
|
||||
|
||||
@ -100,7 +100,7 @@ const extraControllers = {
|
||||
checkReservationCode: async (req, res, next) => {
|
||||
const params = extractParamsFromRequest(req, res, {});
|
||||
const appVersion = ((req && req.headers && req.headers['accept-version']) ? req.headers['accept-version'] : null);
|
||||
console.log('checkReservationCode - appVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErsion: ', appVersion);
|
||||
console.log('checkReservationCode - appVersion: ', appVersion);
|
||||
console.log('checkReservationCode - PARAMS ', params);
|
||||
|
||||
const eventId = params.params.id;
|
||||
|
||||
54
modules/push/push.controller.js
Normal file
54
modules/push/push.controller.js
Normal file
@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
const httpStatus = require('http-status');
|
||||
const Sequelize = require('sequelize');
|
||||
const generateControllers = require('../../core/controllers');
|
||||
const { buildContext } = require('../../core/controllers');
|
||||
const pushService = require('./push.service');
|
||||
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
|
||||
|
||||
// Module Name
|
||||
const MODULE_NAME = '[push.controller]';
|
||||
const controllerOptions = { MODULE_NAME };
|
||||
|
||||
const extraControllers = {
|
||||
createOrUpdate: (config) => {
|
||||
return async (req, res, next) => {
|
||||
try {
|
||||
const context = buildContext(req, config);
|
||||
var data = {
|
||||
token: req.body.token,
|
||||
valid: 1,
|
||||
userId: context.user.id
|
||||
};
|
||||
|
||||
let params = extractParamsFromRequest(req, res, {
|
||||
includeAll: false,
|
||||
paginate: { limit: 1, page: 1 },
|
||||
params: {
|
||||
userId: context.user.id,
|
||||
token: data.token,
|
||||
}
|
||||
});
|
||||
|
||||
// Buscamos el token y el usuario
|
||||
let result = await pushService.fetchOne(params, context);
|
||||
if (!result) {
|
||||
// Dar de alta el token
|
||||
console.log('>> Dar de alta el token');
|
||||
result = await pushService.create(data, context);
|
||||
} else {
|
||||
// Actualizar el token
|
||||
console.log('>> Actualizar el token');
|
||||
result = await pushService.update(params.params, data, context);
|
||||
}
|
||||
} catch(error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
// En todo caso devolver OK al cliente
|
||||
return handleResultResponse('OK', null, null, res, httpStatus.OK);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = generateControllers(pushService, extraControllers, controllerOptions);
|
||||
28
modules/push/push.routes.js
Normal file
28
modules/push/push.routes.js
Normal file
@ -0,0 +1,28 @@
|
||||
const routes = require('express').Router();
|
||||
|
||||
const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessValidator');
|
||||
const SchemaValidator = require('../../middlewares/schemaValidator');
|
||||
|
||||
const FieldMiddleware = require('../../middlewares/fields');
|
||||
const pushTokenController = require('./push.controller');
|
||||
const { pushInputType } = require('./push.validations');
|
||||
|
||||
const generalInvalidFields = [
|
||||
'createdAt', 'updatedAt',
|
||||
];
|
||||
|
||||
routes.get('/me/pushtoken',
|
||||
isLoggedUser,
|
||||
FieldMiddleware.middleware({
|
||||
invalidFields: generalInvalidFields
|
||||
}),
|
||||
pushTokenController.findOne()
|
||||
);
|
||||
|
||||
routes.post('/me/pushtoken',
|
||||
isLoggedUser,
|
||||
SchemaValidator(pushInputType, true),
|
||||
pushTokenController.createOrUpdate()
|
||||
);
|
||||
|
||||
module.exports = routes;
|
||||
10
modules/push/push.service.js
Normal file
10
modules/push/push.service.js
Normal file
@ -0,0 +1,10 @@
|
||||
const _ = require('lodash');
|
||||
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
|
||||
const models = require('../../core/models');
|
||||
const cdnHelper = require('../../helpers/cdn.helper');
|
||||
const { extractProviderInfo } = require('../../helpers/providers.helper');
|
||||
|
||||
const extraMethods = {};
|
||||
|
||||
|
||||
module.exports = generateService(models.UserDevice, extraMethods);
|
||||
9
modules/push/push.validations.js
Normal file
9
modules/push/push.validations.js
Normal file
@ -0,0 +1,9 @@
|
||||
const Joi = require('joi');
|
||||
|
||||
const pushInputType = Joi.object().keys({
|
||||
token: Joi.string().required(),
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
pushInputType,
|
||||
};
|
||||
@ -5,23 +5,17 @@ module.exports = function (sequelize, DataTypes) {
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
},
|
||||
userId: {
|
||||
type: DataTypes.UUID,
|
||||
foreignKey: true,
|
||||
allowNull: false,
|
||||
},
|
||||
token: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
valid: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
allowNull: false,
|
||||
},
|
||||
invalidated: {
|
||||
type: DataTypes.DATE,
|
||||
},
|
||||
platform: {
|
||||
type: DataTypes.STRING,
|
||||
},
|
||||
}, {
|
||||
tableName: 'users_devides',
|
||||
freezeTableName: true,
|
||||
@ -29,7 +23,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
});
|
||||
|
||||
UserDevice.associate = function (models) {
|
||||
UserDevice.User = UserDevice.belongsTo(models.User, {foreignKey: 'userId' });
|
||||
UserDevice.User = UserDevice.belongsTo(models.User, { foreignKey: 'userId', as: "user" });
|
||||
};
|
||||
|
||||
return UserDevice;
|
||||
Loading…
Reference in New Issue
Block a user