From 2756f553c68082342a784ef716c62da6cea6f3ca Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 22 Feb 2019 11:46:58 +0900 Subject: 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 --- src/server/api/endpoints/admin/drive/files.ts | 6 +++--- src/server/api/endpoints/admin/drive/show-file.ts | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'src/server/api/endpoints/admin/drive') diff --git a/src/server/api/endpoints/admin/drive/files.ts b/src/server/api/endpoints/admin/drive/files.ts index 3a837e4189..318b2de1b2 100644 --- a/src/server/api/endpoints/admin/drive/files.ts +++ b/src/server/api/endpoints/admin/drive/files.ts @@ -46,7 +46,7 @@ const sort: any = { // < https://github.com/Microsoft/TypeScript/issues/1863 [fallback]: { _id: -1 } }; -export default define(meta, (ps, me) => new Promise(async (res, rej) => { +export default define(meta, async (ps, me) => { const q = { 'metadata.deletedAt': { $exists: false }, } as any; @@ -61,5 +61,5 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { skip: ps.offset }); - res(await packMany(files, { detail: true, withUser: true, self: true })); -})); + return await packMany(files, { detail: true, withUser: true, self: true }); +}); diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/src/server/api/endpoints/admin/drive/show-file.ts index 6dfab19643..9b993584eb 100644 --- a/src/server/api/endpoints/admin/drive/show-file.ts +++ b/src/server/api/endpoints/admin/drive/show-file.ts @@ -2,6 +2,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../../misc/cafy-id'; import define from '../../../define'; import DriveFile from '../../../../../models/drive-file'; +import { ApiError } from '../../../error'; export const meta = { requireCredential: true, @@ -12,17 +13,25 @@ export const meta = { validator: $.type(ID), transform: transform, }, + }, + + errors: { + noSuchFile: { + message: 'No such file.', + code: 'NO_SUCH_FILE', + id: 'caf3ca38-c6e5-472e-a30c-b05377dcc240' + } } }; -export default define(meta, (ps, me) => new Promise(async (res, rej) => { +export default define(meta, async (ps, me) => { const file = await DriveFile.findOne({ _id: ps.fileId }); if (file == null) { - return rej('file not found'); + throw new ApiError(meta.errors.noSuchFile); } - res(file); -})); + return file; +}); -- cgit v1.2.3-freya