.
This commit is contained in:
parent
80142d078a
commit
9fbd11b169
@ -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);
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,7 +34,7 @@ routes.get('/notifications/:id',
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
routes.post('/notifications',
|
routes.post('/admin/notifications',
|
||||||
isAdministratorUser,
|
isAdministratorUser,
|
||||||
SchemaValidator(notificationSendType, true),
|
SchemaValidator(notificationSendType, true),
|
||||||
notificationController.sendNotification({
|
notificationController.sendNotification({
|
||||||
|
|||||||
@ -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');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user