From ae7df804cb1842e30a5f2695ae51eeb1b2184328 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 20 Mar 2020 20:07:13 +0100 Subject: [PATCH] fix(promise): make sure every promise is handled --- website/server/libs/auth/index.js | 3 ++- website/server/libs/auth/social.js | 4 +++- website/server/libs/pushNotifications.js | 3 ++- website/server/models/group.js | 15 ++++++++++----- website/server/models/user/index.js | 4 +++- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/website/server/libs/auth/index.js b/website/server/libs/auth/index.js index 7b5b3c8c73..e8e60824f3 100644 --- a/website/server/libs/auth/index.js +++ b/website/server/libs/auth/index.js @@ -203,7 +203,8 @@ async function registerLocal (req, res, { isV3 = false }) { } else { sendTxnEmail(savedUser, 'welcome'); } - }); + }) + .catch(err => logger.error(err)); if (!existingUser) { res.analytics.track('register', { diff --git a/website/server/libs/auth/social.js b/website/server/libs/auth/social.js index 56c3a45d9b..a56adb64d7 100644 --- a/website/server/libs/auth/social.js +++ b/website/server/libs/auth/social.js @@ -1,6 +1,7 @@ import passport from 'passport'; import common from '../../../common'; import { BadRequest } from '../errors'; +import logger from '../logger'; import { generateUsername, loginRes, @@ -98,7 +99,8 @@ export async function loginSocial (req, res) { // eslint-disable-line import/pre sendTxnEmail(savedUser, 'welcome'); } } - }); // eslint-disable-line max-nested-callbacks + }) + .catch(err => logger.error(err)); // eslint-disable-line max-nested-callbacks } if (!existingUser) { diff --git a/website/server/libs/pushNotifications.js b/website/server/libs/pushNotifications.js index 96a8f73589..437c29fd45 100644 --- a/website/server/libs/pushNotifications.js +++ b/website/server/libs/pushNotifications.js @@ -76,7 +76,8 @@ function sendNotification (user, details = {}) { logger.error('APN transmissionError', failure.status, notification, failure.device); } }); - }); + }) + .catch(err => logger.error(err, 'APN error')); } break; } diff --git a/website/server/models/group.js b/website/server/models/group.js index 4078ee0a5a..32c12d5b7a 100644 --- a/website/server/models/group.js +++ b/website/server/models/group.js @@ -35,6 +35,7 @@ import { import { schema as SubscriptionPlanSchema, } from './subscriptionPlan'; +import logger from '../libs/logger'; import amazonPayments from '../libs/payments/amazon'; // eslint-disable-line import/no-cycle import stripePayments from '../libs/payments/stripe'; // eslint-disable-line import/no-cycle import { getGroupChat, translateMessage } from '../libs/chat/group-chat'; // eslint-disable-line import/no-cycle @@ -607,9 +608,11 @@ schema.methods.sendChat = function sendChat (options = {}) { }, }; - User.update(query, lastSeenUpdateRemoveOld, { multi: true }).exec().then(() => { - User.update(query, lastSeenUpdateAddNew, { multi: true }).exec(); - }); + User + .update(query, lastSeenUpdateRemoveOld, { multi: true }) + .exec() + .then(() => User.update(query, lastSeenUpdateAddNew, { multi: true }).exec()) + .catch(err => logger.error(err)); if (this.type === 'party' && user) { sendChatPushNotifications(user, this, newChatMessage, mentions, translate); @@ -810,7 +813,8 @@ schema.methods.sendGroupChatReceivedWebhooks = function sendGroupChatReceivedWeb chat, }); }); - }); + }) + .catch(err => logger.error(err)); }; schema.statics.cleanQuestParty = _cleanQuestParty; @@ -944,7 +948,8 @@ schema.methods.finishQuest = async function finishQuest (quest) { quest, }); }); - }); + }) + .catch(err => logger.error(err)); _.forEach(questSeriesAchievements, (questList, achievement) => { if (questList.includes(questK)) { diff --git a/website/server/models/user/index.js b/website/server/models/user/index.js index 076d329c23..8cbd19ffaa 100644 --- a/website/server/models/user/index.js +++ b/website/server/models/user/index.js @@ -1,5 +1,6 @@ import mongoose from 'mongoose'; +import logger from '../../libs/logger'; import schema from './schema'; // eslint-disable-line import/no-cycle import './hooks'; // eslint-disable-line import/no-cycle @@ -32,4 +33,5 @@ mongoose.model('User') .then(foundMods => { // Using push to maintain the reference to mods mods.push(...foundMods); - }); + }) + .catch(err => logger.error(err));