diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-02-22 11:46:58 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-22 11:46:58 +0900 |
| commit | 2756f553c68082342a784ef716c62da6cea6f3ca (patch) | |
| tree | 1e0364ca9ddc1fd88e311f0687746f44e007effd /src/server/api/endpoints/notes/local-timeline.ts | |
| parent | Update CHANGELOG.md (diff) | |
| download | misskey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.gz misskey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.bz2 misskey-2756f553c68082342a784ef716c62da6cea6f3ca.zip | |
Improve error handling of API (#4345)
* wip
* wip
* wip
* Update attached_notes.ts
* wip
* Refactor
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update call.ts
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* :v:
* Fix
Diffstat (limited to 'src/server/api/endpoints/notes/local-timeline.ts')
| -rw-r--r-- | src/server/api/endpoints/notes/local-timeline.ts | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts index 34695e1bca..44328ebede 100644 --- a/src/server/api/endpoints/notes/local-timeline.ts +++ b/src/server/api/endpoints/notes/local-timeline.ts @@ -3,10 +3,10 @@ import ID, { transform } from '../../../../misc/cafy-id'; import Note from '../../../../models/note'; import { packMany } from '../../../../models/note'; import define from '../../define'; -import { countIf } from '../../../../prelude/array'; import fetchMeta from '../../../../misc/fetch-meta'; import activeUsersChart from '../../../../services/chart/active-users'; import { getHideUserIds } from '../../common/get-hide-users'; +import { ApiError } from '../../error'; export const meta = { desc: { @@ -65,22 +65,25 @@ export const meta = { untilDate: { validator: $.optional.num, }, + }, + + errors: { + ltlDisabled: { + message: 'Local timeline has been disabled.', + code: 'LTL_DISABLED', + id: '45a6eb02-7695-4393-b023-dd3be9aaaefd' + }, } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { - const meta = await fetchMeta(); - if (meta.disableLocalTimeline) { +export default define(meta, async (ps, user) => { + const m = await fetchMeta(); + if (m.disableLocalTimeline) { if (user == null || (!user.isAdmin && !user.isModerator)) { - return rej('local timeline disabled'); + throw new ApiError(meta.errors.ltlDisabled); } } - // Check if only one of sinceId, untilId, sinceDate, untilDate specified - if (countIf(x => x != null, [ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate]) > 1) { - return rej('only one of sinceId, untilId, sinceDate, untilDate can be specified'); - } - // 隠すユーザーを取得 const hideUserIds = await getHideUserIds(user); @@ -157,15 +160,14 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { } //#endregion - const timeline = await Note - .find(query, { - limit: ps.limit, - sort: sort - }); - - res(await packMany(timeline, user)); + const timeline = await Note.find(query, { + limit: ps.limit, + sort: sort + }); if (user) { activeUsersChart.update(user); } -})); + + return await packMany(timeline, user); +}); |