app2-api/modules/notification/user_device.service.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-06-15 10:13:07 +00:00
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");
2019-10-17 16:59:18 +00:00
const extraMethods = {
2023-06-15 10:13:07 +00:00
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,
2023-04-20 12:20:09 +00:00
},
2023-06-15 10:13:07 +00:00
raw: true,
limit: limit,
offset: offset,
});
},
2019-10-17 16:59:18 +00:00
};
module.exports = generateService(models.UserDevice, extraMethods);