summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-10-04 00:39:11 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-10-04 00:39:11 +0900
commitbaad11288af8ae1b950ecb5a62e23a70bee7d51d (patch)
tree98a8dd3829753c4f78fd344e8c52b528edbb933e /src/models
parent9.3.1 (diff)
downloadsharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.tar.gz
sharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.tar.bz2
sharkey-baad11288af8ae1b950ecb5a62e23a70bee7d51d.zip
ドキュメントが見つからなくてもエラーにせずnullを返すように
Diffstat (limited to 'src/models')
-rw-r--r--src/models/note.ts17
-rw-r--r--src/models/user.ts14
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)) {