diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-10-04 00:39:11 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-10-04 00:39:11 +0900 |
| commit | baad11288af8ae1b950ecb5a62e23a70bee7d51d (patch) | |
| tree | 98a8dd3829753c4f78fd344e8c52b528edbb933e /src/models | |
| parent | 9.3.1 (diff) | |
| download | sharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.tar.gz sharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.tar.bz2 sharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.zip | |
ドキュメントが見つからなくてもエラーにせずnullを返すように
Diffstat (limited to 'src/models')
| -rw-r--r-- | src/models/note.ts | 17 | ||||
| -rw-r--r-- | src/models/user.ts | 14 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/models/note.ts b/src/models/note.ts index 67ee525c31..75518d709f 100644 --- a/src/models/note.ts +++ b/src/models/note.ts @@ -226,6 +226,17 @@ export const hideNote = async (packedNote: any, meId: mongo.ObjectID) => { } }; +export const packMany = async ( + notes: (string | mongo.ObjectID | INote)[], + me?: string | mongo.ObjectID | IUser, + options?: { + detail?: boolean; + skipHide?: boolean; + } +) => { + return (await Promise.all(notes.map(n => pack(n, me, options)))).filter(x => x != null); +}; + /** * Pack a note for API response * @@ -271,7 +282,11 @@ export const pack = async ( _note = deepcopy(note); } - if (!_note) throw `invalid note arg ${note}`; + // 投稿がデータベース上に見つからなかったとき + if (_note == null) { + console.warn(`note not found on database: ${note}`); + return null; + } const id = _note._id; diff --git a/src/models/user.ts b/src/models/user.ts index d2124bda74..3e8aefc4b1 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -3,7 +3,7 @@ const deepcopy = require('deepcopy'); const sequential = require('promise-sequential'); import rap from '@prezzemolo/rap'; import db from '../db/mongodb'; -import Note, { pack as packNote, deleteNote } from './note'; +import Note, { packMany as packNoteMany, deleteNote } from './note'; import Following, { deleteFollowing } from './following'; import Mute, { deleteMute } from './mute'; import { getFriendIds } from '../server/api/common/get-friends'; @@ -361,9 +361,11 @@ export const pack = ( _user = deepcopy(user); } - // TODO: ここでエラーにするのではなくダミーのユーザーデータを返す - // SEE: https://github.com/syuilo/misskey/issues/1432 - if (!_user) return reject('invalid user arg.'); + // ユーザーがデータベース上に見つからなかったとき + if (_user == null) { + console.warn(`user not found on database: ${user}`); + return null; + } // Me const meId: mongo.ObjectID = me @@ -468,9 +470,9 @@ export const pack = ( if (opts.detail) { if (_user.pinnedNoteIds) { // Populate pinned notes - _user.pinnedNotes = Promise.all(_user.pinnedNoteIds.map((id: mongo.ObjectId) => packNote(id, meId, { + _user.pinnedNotes = packNoteMany(_user.pinnedNoteIds, meId, { detail: true - }))); + }); } if (meId && !meId.equals(_user.id)) { |