mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 22:27:26 +01:00
Push notifications (#7682)
* Fix Social Push notifications * Fix code formatting issues * Fix commented issues * Fix Syntax errors * update push notify dependency * specify push-notify version * change how apn key is loaded * feat(push-notifications): improve logging * feat(push-notifications): disable v2 push notifications * test(push-notifications): add unit tests and improve integration ones * fix(push-notifications): throw when required params are missing * fix(tests): correct descriptions and remove wrong comment * fix(push-notifications): trim APN key * fix(apn): log feedback only if it has data * fix(apn): load cert and key differently * fix(tests): correctly load apn during tests * download creds from S3 and create AWS lib * convert s3 buffer to a string * fix(apn): remove console.log and do not use cert twice * invert key and cert, disable failing test * invert key and cert
This commit is contained in:
@@ -405,18 +405,29 @@ schema.methods.startQuest = async function startQuest (user) {
|
||||
// send notifications in the background without blocking
|
||||
User.find(
|
||||
{ _id: { $in: nonUserQuestMembers } },
|
||||
'party.quest items.quests auth.facebook auth.local preferences.emailNotifications pushDevices profile.name'
|
||||
'party.quest items.quests auth.facebook auth.local preferences.emailNotifications preferences.pushNotifications pushDevices profile.name'
|
||||
).exec().then((membersToNotify) => {
|
||||
let membersToEmail = _.filter(membersToNotify, (member) => {
|
||||
// send push notifications and filter users that disabled emails
|
||||
sendPushNotification(member, 'HabitRPG', `${shared.i18n.t('questStarted')}: ${quest.text()}`);
|
||||
|
||||
return member.preferences.emailNotifications.questStarted !== false &&
|
||||
member._id !== user._id;
|
||||
});
|
||||
sendTxnEmail(membersToEmail, 'quest-started', [
|
||||
{ name: 'PARTY_URL', content: '/#/options/groups/party' },
|
||||
]);
|
||||
let membersToPush = _.filter(membersToNotify, (member) => {
|
||||
// send push notifications and filter users that disabled emails
|
||||
return member.preferences.pushNotifications.questStarted !== false &&
|
||||
member._id !== user._id;
|
||||
});
|
||||
_.each(membersToPush, (member) => {
|
||||
sendPushNotification(member,
|
||||
{
|
||||
title: quest.text(),
|
||||
message: `${shared.i18n.t('questStarted')}: ${quest.text()}`,
|
||||
identifier: 'questStarted',
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user