From fce7dc0f4e69053c7306289189b4fa4891f57339 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 4 Oct 2018 13:53:48 +0900 Subject: Improve error handling of pack function of notification --- src/models/favorite.ts | 2 +- src/models/notification.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src/models') diff --git a/src/models/favorite.ts b/src/models/favorite.ts index 2c07959be7..2c10674bcb 100644 --- a/src/models/favorite.ts +++ b/src/models/favorite.ts @@ -79,7 +79,7 @@ export const pack = ( // (データベースの不具合などで)投稿が見つからなかったら if (_favorite.note == null) { - console.warn(`favorite: note not found on database: ${_favorite.noteId}`); + console.warn(`in packaging favorite: note not found on database: ${_favorite.noteId}`); return resolve(null); } diff --git a/src/models/notification.ts b/src/models/notification.ts index 835c89cd56..57be4bef10 100644 --- a/src/models/notification.ts +++ b/src/models/notification.ts @@ -77,6 +77,12 @@ export async function deleteNotification(notification: string | mongo.ObjectID | }); } +export const packMany = async ( + notifications: any[] +) => { + return (await Promise.all(notifications.map(n => pack(n)))).filter(x => x != null); +}; + /** * Pack a notification for API response */ @@ -123,6 +129,12 @@ export const pack = (notification: any) => new Promise(async (resolve, reje case 'poll_vote': // Populate note _notification.note = await packNote(_notification.noteId, me); + + // (データベースの不具合などで)投稿が見つからなかったら + if (_notification.note == null) { + console.warn(`in packaging notification: note not found on database: ${_notification.noteId}`); + return resolve(null); + } break; default: console.error(`Unknown type: ${_notification.type}`); -- cgit v1.2.3-freya