From f6aee2a00ba53acbfb06909ea14ff3188baa4d89 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 31 Oct 2019 12:11:28 +0100 Subject: [PATCH 1/3] Ajustes del servidor --- core/express.js | 3 ++- core/models.js | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/express.js b/core/express.js index 1b47313..9907ab3 100644 --- a/core/express.js +++ b/core/express.js @@ -47,7 +47,8 @@ app.use(helmet()); // enable CORS - Cross Origin Resource Sharing 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'], })); diff --git a/core/models.js b/core/models.js index 534162a..0bd8f83 100644 --- a/core/models.js +++ b/core/models.js @@ -23,7 +23,12 @@ const sequelize = new Sequelize( config.database, { dialect: 'mysql', operatorAliases: false, - logging: false, + logging: config.debug, + pool: { + max: 140, + min: 0, + idle: 10000 + } } ); From 80142d078ad83c91a4d3c4a6bc37d21adb42010f Mon Sep 17 00:00:00 2001 From: david Date: Thu, 31 Oct 2019 12:16:24 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Ajustes=20de=20cach=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/environments/production.js | 6 +++--- modules/entities/entity.routes.js | 3 +-- modules/speakers/speaker.routes.js | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/config/environments/production.js b/config/environments/production.js index 7cdbdd8..d80b7e8 100644 --- a/config/environments/production.js +++ b/config/environments/production.js @@ -16,9 +16,9 @@ module.exports = { }, cache: { - enabled: false, - defaultDuration: '1 minute', - debug: true, + enabled: true, + defaultDuration: '1 minute', + debug: true, }, diff --git a/modules/entities/entity.routes.js b/modules/entities/entity.routes.js index d0cd0ec..aca3976 100644 --- a/modules/entities/entity.routes.js +++ b/modules/entities/entity.routes.js @@ -19,7 +19,7 @@ const generalInvalidFields = [ routes.get ('/entities/colleges', - //cacheSuccesses('24 hours'), + cacheSuccesses('24 hours'), // PaginateMiddleware.middleware(), FieldMiddleware.middleware({ invalidFields: generalInvalidFields @@ -49,7 +49,6 @@ routes.get ('/entities/partners', */ routes.get('/admin/entities', isAdministratorUser, - cacheSuccesses('24 hours'), // FieldMiddleware.middleware({ // invalidFields: generalInvalidFields // }), diff --git a/modules/speakers/speaker.routes.js b/modules/speakers/speaker.routes.js index f71cd0b..2bed160 100644 --- a/modules/speakers/speaker.routes.js +++ b/modules/speakers/speaker.routes.js @@ -18,7 +18,7 @@ const generalInvalidFields = [ // Todos los ponentes routes.get('/speakers', isLoggedUser, - //cacheSuccesses('1 minute'), + cacheSuccesses('24 hours'), FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), From 9fbd11b169fa91848d043661186746a3035e8cf6 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 31 Oct 2019 13:45:18 +0100 Subject: [PATCH 3/3] . --- modules/notification/notification.controller.js | 13 ++++++++----- modules/notification/notification.model.js | 4 ++++ modules/notification/notification.routes.js | 10 ++++++---- modules/notification/notification.service.js | 1 - 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/notification/notification.controller.js b/modules/notification/notification.controller.js index 839ac63..317fbcb 100644 --- a/modules/notification/notification.controller.js +++ b/modules/notification/notification.controller.js @@ -1,6 +1,6 @@ 'use strict'; const httpStatus = require('http-status'); - +const moment = require('moment'); const generateControllers = require('../../core/controllers'); const { buildContext } = require('../../core/controllers'); const notificationService = require('./notification.service'); @@ -45,7 +45,7 @@ const extraControllers = { let sendNotificationsPromise = (messages) => notificationService.sendNotification(messages); let disableUserDevicePromise = (token) => userDeviceService.update({ params: { token: token, - }}, { valid: false }, context); + }}, { valid: 0, invalidated: moment() }, context); let disableInvalidUserDevicesPromise = (userDevices) => { return new Promise(function (resolve) { @@ -76,11 +76,13 @@ const extraControllers = { let saveResponseStatusPromise = (messages, tickets) => notificationDetailService.saveNotificationDetails(messages, tickets); const notificationRecord = { + date: moment(), title: req.body.title, body: req.body.message, ttl: req.body.ttl || undefined, - priority: req.body.priority || 'default', + priority: req.body.priority || 'default', data: req.body.data || { userIds: req.body.userIds }, + userId: context.user.id, }; let buildMessagesPromise = (userDevices) => { @@ -95,9 +97,10 @@ const extraControllers = { priority: notificationRecord.priority, userId: userDevice.userId, to: userDevice.token, - sound: 'default', notificationId: notificationRecord.id, data: notificationRecord.data, + _displayInForeground: true, + sound: 'default', }); }); @@ -196,7 +199,7 @@ const extraControllers = { } else { // Actualizar el token 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) { console.error(error); diff --git a/modules/notification/notification.model.js b/modules/notification/notification.model.js index 1bf2803..469ec2f 100644 --- a/modules/notification/notification.model.js +++ b/modules/notification/notification.model.js @@ -5,6 +5,10 @@ module.exports = function (sequelize, DataTypes) { defaultValue: DataTypes.UUIDV4, primaryKey: true, }, + date: { + type: DataTypes.DATE, + allowNull: false, + }, title: { type: DataTypes.STRING, allowNull: true, diff --git a/modules/notification/notification.routes.js b/modules/notification/notification.routes.js index 9d1ff19..16dfd20 100644 --- a/modules/notification/notification.routes.js +++ b/modules/notification/notification.routes.js @@ -4,6 +4,7 @@ const { isAdministratorUser, isLoggedUser } = require('../../middlewares/accessV const SchemaValidator = require('../../middlewares/schemaValidator'); const PaginateMiddleware = require('../../middlewares/paginate'); const FieldMiddleware = require('../../middlewares/fields'); +const SortMiddleware = require('../../middlewares/sort'); const notificationController = require('./notification.controller'); const { deviceTokenInputType, notificationSendType } = require('./notification.validations'); @@ -11,18 +12,19 @@ const generalInvalidFields = [ 'createdAt', 'updatedAt', ]; -routes.get('/notifications', +routes.get('/admin/notifications', isAdministratorUser, FieldMiddleware.middleware({ invalidFields: generalInvalidFields }), + SortMiddleware.middleware({ default: "-date" }), PaginateMiddleware.middleware(), notificationController.find({ scopes: ['defaultScope'] }) ); -routes.get('/notifications/:id', +routes.get('/admin/notifications/:id', isAdministratorUser, FieldMiddleware.middleware({ invalidFields: generalInvalidFields @@ -32,9 +34,9 @@ routes.get('/notifications/:id', }) ); -routes.post('/notifications', +routes.post('/admin/notifications', isAdministratorUser, - SchemaValidator(notificationSendType, true), + SchemaValidator(notificationSendType, true), notificationController.sendNotification({ scopes: ['defaultScope'] }) diff --git a/modules/notification/notification.service.js b/modules/notification/notification.service.js index b3ec254..ddc5421 100644 --- a/modules/notification/notification.service.js +++ b/modules/notification/notification.service.js @@ -1,4 +1,3 @@ -const moment = require('moment'); const { Expo } = require('expo-server-sdk'); const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); const models = require('../../core/models');