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/app | |
| parent | Update CHANGELOG.md (diff) | |
| download | sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.gz sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.bz2 sharkey-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/app')
| -rw-r--r-- | src/server/api/endpoints/app/create.ts | 9 | ||||
| -rw-r--r-- | src/server/api/endpoints/app/show.ts | 20 |
2 files changed, 18 insertions, 11 deletions
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts index 849530c20d..ef8bd66076 100644 --- a/src/server/api/endpoints/app/create.ts +++ b/src/server/api/endpoints/app/create.ts @@ -27,7 +27,7 @@ export const meta = { } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user) => { // Generate secret const secret = rndstr('a-zA-Z0-9', 32); @@ -42,9 +42,8 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { secret: secret }); - // Response - res(await pack(app, null, { + return await pack(app, null, { detail: true, includeSecret: true - })); -})); + }); +}); diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts index cb47b40abf..72755ce01d 100644 --- a/src/server/api/endpoints/app/show.ts +++ b/src/server/api/endpoints/app/show.ts @@ -2,6 +2,7 @@ import $ from 'cafy'; import ID, { transform } from '../../../../misc/cafy-id'; import App, { pack } from '../../../../models/app'; import define from '../../define'; +import { ApiError } from '../../error'; export const meta = { params: { @@ -9,22 +10,29 @@ export const meta = { validator: $.type(ID), transform: transform }, + }, + + errors: { + noSuchApp: { + message: 'No such app.', + code: 'NO_SUCH_APP', + id: 'dce83913-2dc6-4093-8a7b-71dbb11718a3' + } } }; -export default define(meta, (ps, user, app) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user, app) => { const isSecure = user != null && app == null; // Lookup app const ap = await App.findOne({ _id: ps.appId }); if (ap === null) { - return rej('app not found'); + throw new ApiError(meta.errors.noSuchApp); } - // Send response - res(await pack(ap, user, { + return await pack(ap, user, { detail: true, includeSecret: isSecure && ap.userId.equals(user._id) - })); -})); + }); +}); |