summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/app
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-02-22 11:46:58 +0900
committerGitHub <noreply@github.com>2019-02-22 11:46:58 +0900
commit2756f553c68082342a784ef716c62da6cea6f3ca (patch)
tree1e0364ca9ddc1fd88e311f0687746f44e007effd /src/server/api/endpoints/app
parentUpdate CHANGELOG.md (diff)
downloadsharkey-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.ts9
-rw-r--r--src/server/api/endpoints/app/show.ts20
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)
- }));
-}));
+ });
+});