45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
const moment = require("moment");
|
|
const { Expo } = require("expo-server-sdk");
|
|
const { generateService, parseParamsToFindOptions } = require("../../helpers/service.helper");
|
|
const models = require("../../core/models");
|
|
const { Sequelize } = require("sequelize");
|
|
|
|
const extraMethods = {
|
|
isValidPushToken: (token) => {
|
|
return Expo.isExpoPushToken(token);
|
|
},
|
|
|
|
afterFetchAll: (result, params, context) => {
|
|
if (!result.count) {
|
|
return result;
|
|
}
|
|
|
|
let rows = result.rows.map((row) => row.toJSON());
|
|
|
|
return {
|
|
count: result.count,
|
|
rows: rows,
|
|
};
|
|
},
|
|
|
|
getPushToken: (params) => {
|
|
return models.UserDevice.findOne({
|
|
where: params,
|
|
});
|
|
},
|
|
|
|
_getActiveDeviceIds: async (offset = 0, limit = 10, country = "ES") => {
|
|
return models.UserDevice.findAndCountAll({
|
|
where: {
|
|
valid: 1,
|
|
country: country === "*" ? { [Sequelize.Op.ne]: null } : country,
|
|
},
|
|
raw: true,
|
|
limit: limit,
|
|
offset: offset,
|
|
});
|
|
},
|
|
};
|
|
|
|
module.exports = generateService(models.UserDevice, extraMethods);
|