From 1c65cb3e3637c097e876c38147cd1b95b4d356ca Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 7 Oct 2018 19:58:00 +0900 Subject: [PATCH] Resolve #2843 --- src/services/i/pin.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/services/i/pin.ts b/src/services/i/pin.ts index 142fc1851..ff390eb78 100644 --- a/src/services/i/pin.ts +++ b/src/services/i/pin.ts @@ -24,7 +24,15 @@ export async function addPinned(user: IUser, noteId: mongo.ObjectID) { throw new Error('note not found'); } - const pinnedNoteIds = user.pinnedNoteIds || []; + let pinnedNoteIds = user.pinnedNoteIds || []; + + //#region 現在ピン留め投稿している投稿が実際にデータベースに存在しているのかチェック + // データベースの欠損などで存在していない場合があるので。 + // 存在していなかったらピン留め投稿から外す + const pinnedNotes = (await Promise.all(pinnedNoteIds.map(id => Note.findOne({ _id: id })))).filter(x => x != null); + + pinnedNoteIds = pinnedNoteIds.filter(id => pinnedNotes.some(n => n._id.equals(id))); + //#endregion if (pinnedNoteIds.length >= 5) { throw new Error('cannot pin more notes');