summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/app/create.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-02 12:49:08 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-02 12:49:08 +0900
commita7e6b766be6b30b37839beb13f31d96b141cc25a (patch)
treeb6bf96ae808260f0aa94767835d59d25f7f889a7 /src/server/api/endpoints/app/create.ts
parentUpdate src/server/api/endpoints/meta.ts (diff)
downloadsharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.gz
sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.bz2
sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.zip
Resolve #2623
Diffstat (limited to 'src/server/api/endpoints/app/create.ts')
-rw-r--r--src/server/api/endpoints/app/create.ts48
1 files changed, 26 insertions, 22 deletions
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index 19795f1728..40da5144f6 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -2,31 +2,35 @@ import rndstr from 'rndstr';
import $ from 'cafy';
import App, { pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user';
+import getParams from '../../get-params';
export const meta = {
- requireCredential: false
-};
+ requireCredential: false,
-/**
- * Create an app
- */
-export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
- // Get 'name' parameter
- const [name, nameErr] = $.str.get(params.name);
- if (nameErr) return rej('invalid name param');
+ params: {
+ name: {
+ validator: $.str
+ },
- // Get 'description' parameter
- const [description, descriptionErr] = $.str.get(params.description);
- if (descriptionErr) return rej('invalid description param');
+ description: {
+ validator: $.str
+ },
- // Get 'permission' parameter
- const [permission, permissionErr] = $.arr($.str).unique().get(params.permission);
- if (permissionErr) return rej('invalid permission param');
+ permission: {
+ validator: $.arr($.str).unique()
+ },
- // Get 'callbackUrl' parameter
- // TODO: Check it is valid url
- const [callbackUrl = null, callbackUrlErr] = $.str.optional.nullable.get(params.callbackUrl);
- if (callbackUrlErr) return rej('invalid callbackUrl param');
+ // TODO: Check it is valid url
+ callbackUrl: {
+ validator: $.str.optional.nullable,
+ default: null as any
+ },
+ }
+};
+
+export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
+ const [ps, psErr] = getParams(meta, params);
+ if (psErr) return rej(psErr);
// Generate secret
const secret = rndstr('a-zA-Z0-9', 32);
@@ -36,9 +40,9 @@ export default async (params: any, user: ILocalUser) => new Promise(async (res,
createdAt: new Date(),
userId: user && user._id,
name: name,
- description: description,
- permission: permission,
- callbackUrl: callbackUrl,
+ description: ps.description,
+ permission: ps.permission,
+ callbackUrl: ps.callbackUrl,
secret: secret
});