port push notifications in api v3

This commit is contained in:
Matteo Pagliazzi
2016-02-19 20:34:55 +01:00
parent 624c0da5ab
commit fb343f8feb
10 changed files with 34 additions and 13 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ import {
import shared from '../../../../common';
import * as Tasks from '../../models/task';
import { sendTxn as txnEmail } from '../../libs/api-v3/email';
import pushNotify from '../../libs/api-v3/pushNotifications';
import { sendNotification as sendPushNotification } from '../../libs/api-v3/pushNotifications';
import Q from 'q';
import csvStringify from '../../libs/api-v3/csvStringify';
@@ -471,7 +471,7 @@ async function _closeChal (challenge, broken = {}) {
]);
}
pushNotify(savedWinner, shared.i18n.t('wonChallenge'), challenge.name); // TODO translate
sendPushNotification(savedWinner, shared.i18n.t('wonChallenge'), challenge.name); // TODO translate
}
// Run some operations in the background withouth blocking the thread
+8 -1
View File
@@ -21,7 +21,8 @@ import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
import * as firebase from '../../libs/api-v3/firebase';
import { sendTxn as sendTxnEmail } from '../../libs/api-v3/email';
import { encrypt } from '../../libs/api-v3/encryption';
import common from '../../../../common';
import { sendNotification as sendPushNotification } from '../../libs/api-v3/pushNotifications';
let api = {};
// TODO shall we accept party as groupId in all routes?
@@ -510,6 +511,12 @@ async function _inviteByUUID (uuid, group, inviter, req, res) {
sendTxnEmail(userToInvite, `invited-${groupLabel}`, emailVars);
}
sendPushNotification(
userToInvite,
common.i18n.t(group.type === 'guild' ? 'invitedGuild' : 'invitedParty'),
group.name
);
let userInvited = await userToInvite.save();
if (group.type === 'guild') {
return userInvited.invitations.guilds[userToInvite.invitations.guilds.length - 1];
+10 -1
View File
@@ -17,6 +17,8 @@ import {
sendTxn as sendTxnEmail,
} from '../../libs/api-v3/email';
import { quests as questScrolls } from '../../../../common/script/content';
import common from '../../../../common';
import { sendNotification as sendPushNotification } from '../../libs/api-v3/pushNotifications';
function canStartQuestAutomatically (group) {
// If all members are either true (accepted) or false (rejected) return true
@@ -62,7 +64,7 @@ api.inviteToQuest = {
let members = await User.find({
'party._id': group._id,
_id: {$ne: user._id},
}).select('auth.facebook auth.local preferences.emailNotifications profile.name')
}).select('auth.facebook auth.local preferences.emailNotifications profile.name pushDevices')
.exec();
group.markModified('quest');
@@ -102,6 +104,13 @@ api.inviteToQuest = {
// send out invites
let inviterVars = getUserInfo(user, ['name', 'email']);
let membersToEmail = members.filter(member => {
// send push notifications while filtering members before sending emails
sendPushNotification(
member,
common.i18n.t('questInvitationTitle'),
common.i18n.t('questInvitationInfo', { quest: quest.text() })
);
return member.preferences.emailNotifications.invitedQuest !== false;
});
sendTxnEmail(membersToEmail, `invite-${quest.boss ? 'boss' : 'collection'}-quest`, [