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: {
enabled: false,
defaultDuration: '1 minute',
debug: true,
enabled: true,
defaultDuration: '1 minute',
debug: true,
},

View File

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

View File

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

View File

@ -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
// }),

View File

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

View File

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

View File

@ -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']
})

View File

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

View File

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