Merge branch 'master' of wopr.rodax-software.com:lqdvi/app2-api

This commit is contained in:
David Arranz 2019-10-31 13:46:16 +01:00
commit b6a8ce806f
9 changed files with 31 additions and 18 deletions

View File

@ -16,9 +16,9 @@ module.exports = {
}, },
cache: { cache: {
enabled: false, enabled: true,
defaultDuration: '1 minute', defaultDuration: '1 minute',
debug: true, debug: true,
}, },

View File

@ -47,7 +47,8 @@ app.use(helmet());
// enable CORS - Cross Origin Resource Sharing // enable CORS - Cross Origin Resource Sharing
app.use(cors({ app.use(cors({
exposedHeaders: ['Content-Disposition', 'Content-Type', 'Content-Length'], exposedHeaders: ['Content-Disposition', 'Content-Type', 'Content-Length',
'X-Total-Count', 'Pagination-Count', 'Pagination-Page', 'Pagination-Limit'],
})); }));

View File

@ -23,7 +23,12 @@ const sequelize = new Sequelize(
config.database, { config.database, {
dialect: 'mysql', dialect: 'mysql',
operatorAliases: false, operatorAliases: false,
logging: false, logging: config.debug,
pool: {
max: 140,
min: 0,
idle: 10000
}
} }
); );

View File

@ -19,7 +19,7 @@ const generalInvalidFields = [
routes.get ('/entities/colleges', routes.get ('/entities/colleges',
//cacheSuccesses('24 hours'), cacheSuccesses('24 hours'),
// PaginateMiddleware.middleware(), // PaginateMiddleware.middleware(),
FieldMiddleware.middleware({ FieldMiddleware.middleware({
invalidFields: generalInvalidFields invalidFields: generalInvalidFields
@ -49,7 +49,6 @@ routes.get ('/entities/partners',
*/ */
routes.get('/admin/entities', routes.get('/admin/entities',
isAdministratorUser, isAdministratorUser,
cacheSuccesses('24 hours'),
// FieldMiddleware.middleware({ // FieldMiddleware.middleware({
// invalidFields: generalInvalidFields // invalidFields: generalInvalidFields
// }), // }),

View File

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const httpStatus = require('http-status'); const httpStatus = require('http-status');
const moment = require('moment');
const generateControllers = require('../../core/controllers'); const generateControllers = require('../../core/controllers');
const { buildContext } = require('../../core/controllers'); const { buildContext } = require('../../core/controllers');
const notificationService = require('./notification.service'); const notificationService = require('./notification.service');
@ -45,7 +45,7 @@ const extraControllers = {
let sendNotificationsPromise = (messages) => notificationService.sendNotification(messages); let sendNotificationsPromise = (messages) => notificationService.sendNotification(messages);
let disableUserDevicePromise = (token) => userDeviceService.update({ params: { let disableUserDevicePromise = (token) => userDeviceService.update({ params: {
token: token, token: token,
}}, { valid: false }, context); }}, { valid: 0, invalidated: moment() }, context);
let disableInvalidUserDevicesPromise = (userDevices) => { let disableInvalidUserDevicesPromise = (userDevices) => {
return new Promise(function (resolve) { return new Promise(function (resolve) {
@ -76,11 +76,13 @@ const extraControllers = {
let saveResponseStatusPromise = (messages, tickets) => notificationDetailService.saveNotificationDetails(messages, tickets); let saveResponseStatusPromise = (messages, tickets) => notificationDetailService.saveNotificationDetails(messages, tickets);
const notificationRecord = { const notificationRecord = {
date: moment(),
title: req.body.title, title: req.body.title,
body: req.body.message, body: req.body.message,
ttl: req.body.ttl || undefined, ttl: req.body.ttl || undefined,
priority: req.body.priority || 'default', priority: req.body.priority || 'default',
data: req.body.data || { userIds: req.body.userIds }, data: req.body.data || { userIds: req.body.userIds },
userId: context.user.id,
}; };
let buildMessagesPromise = (userDevices) => { let buildMessagesPromise = (userDevices) => {
@ -95,9 +97,10 @@ const extraControllers = {
priority: notificationRecord.priority, priority: notificationRecord.priority,
userId: userDevice.userId, userId: userDevice.userId,
to: userDevice.token, to: userDevice.token,
sound: 'default',
notificationId: notificationRecord.id, notificationId: notificationRecord.id,
data: notificationRecord.data, data: notificationRecord.data,
_displayInForeground: true,
sound: 'default',
}); });
}); });
@ -196,7 +199,7 @@ const extraControllers = {
} else { } else {
// Actualizar el token // Actualizar el token
console.log('>> Actualizar el token', params.params, data, context); console.log('>> Actualizar el token', params.params, data, context);
result = await userDeviceService.update(params.params, data, context); result = await userDeviceService.update(params, { valid : 1 }, context);
} }
} catch(error) { } catch(error) {
console.error(error); console.error(error);

View File

@ -5,6 +5,10 @@ module.exports = function (sequelize, DataTypes) {
defaultValue: DataTypes.UUIDV4, defaultValue: DataTypes.UUIDV4,
primaryKey: true, primaryKey: true,
}, },
date: {
type: DataTypes.DATE,
allowNull: false,
},
title: { title: {
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,

View File

@ -4,6 +4,7 @@ const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessV
const SchemaValidator = require('../../middlewares/schemaValidator'); const SchemaValidator = require('../../middlewares/schemaValidator');
const PaginateMiddleware = require('../../middlewares/paginate'); const PaginateMiddleware = require('../../middlewares/paginate');
const FieldMiddleware = require('../../middlewares/fields'); const FieldMiddleware = require('../../middlewares/fields');
const SortMiddleware = require('../../middlewares/sort');
const notificationController = require('./notification.controller'); const notificationController = require('./notification.controller');
const { deviceTokenInputType, notificationSendType } = require('./notification.validations'); const { deviceTokenInputType, notificationSendType } = require('./notification.validations');
@ -11,18 +12,19 @@ const generalInvalidFields = [
'createdAt', 'updatedAt', 'createdAt', 'updatedAt',
]; ];
routes.get('/notifications', routes.get('/admin/notifications',
isAdministratorUser, isAdministratorUser,
FieldMiddleware.middleware({ FieldMiddleware.middleware({
invalidFields: generalInvalidFields invalidFields: generalInvalidFields
}), }),
SortMiddleware.middleware({ default: "-date" }),
PaginateMiddleware.middleware(), PaginateMiddleware.middleware(),
notificationController.find({ notificationController.find({
scopes: ['defaultScope'] scopes: ['defaultScope']
}) })
); );
routes.get('/notifications/:id', routes.get('/admin/notifications/:id',
isAdministratorUser, isAdministratorUser,
FieldMiddleware.middleware({ FieldMiddleware.middleware({
invalidFields: generalInvalidFields invalidFields: generalInvalidFields
@ -32,9 +34,9 @@ routes.get('/notifications/:id',
}) })
); );
routes.post('/notifications', routes.post('/admin/notifications',
isAdministratorUser, isAdministratorUser,
SchemaValidator(notificationSendType, true), SchemaValidator(notificationSendType, true),
notificationController.sendNotification({ notificationController.sendNotification({
scopes: ['defaultScope'] scopes: ['defaultScope']
}) })

View File

@ -1,4 +1,3 @@
const moment = require('moment');
const { Expo } = require('expo-server-sdk'); const { Expo } = require('expo-server-sdk');
const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper');
const models = require('../../core/models'); const models = require('../../core/models');

View File

@ -18,7 +18,7 @@ const generalInvalidFields = [
// Todos los ponentes // Todos los ponentes
routes.get('/speakers', routes.get('/speakers',
isLoggedUser, isLoggedUser,
//cacheSuccesses('1 minute'), cacheSuccesses('24 hours'),
FieldMiddleware.middleware({ FieldMiddleware.middleware({
invalidFields: generalInvalidFields invalidFields: generalInvalidFields
}), }),