mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
42 lines
885 B
JavaScript
42 lines
885 B
JavaScript
import _ from 'lodash';
|
|
import i18n from '../i18n';
|
|
import {
|
|
BadRequest,
|
|
NotAuthorized,
|
|
} from '../libs/errors';
|
|
|
|
// TODO move to server code
|
|
module.exports = function addPushDevice (user, req = {}) {
|
|
let regId = _.get(req, 'body.regId');
|
|
if (!regId) throw new BadRequest(i18n.t('regIdRequired', req.language));
|
|
|
|
let type = _.get(req, 'body.type');
|
|
if (!type) throw new BadRequest(i18n.t('typeRequired', req.language));
|
|
|
|
if (!user.pushDevices) {
|
|
user.pushDevices = [];
|
|
}
|
|
|
|
let pushDevices = user.pushDevices;
|
|
|
|
let item = {
|
|
regId,
|
|
type,
|
|
};
|
|
|
|
let indexOfPushDevice = _.findIndex(pushDevices, {
|
|
regId: item.regId,
|
|
});
|
|
|
|
if (indexOfPushDevice !== -1) {
|
|
throw new NotAuthorized(i18n.t('pushDeviceAlreadyAdded', req.language));
|
|
}
|
|
|
|
pushDevices.push(item);
|
|
|
|
return [
|
|
user.pushDevices,
|
|
i18n.t('pushDeviceAdded', req.language),
|
|
];
|
|
};
|