diff options
Diffstat (limited to 'src/server/api/endpoints/app')
| -rw-r--r-- | src/server/api/endpoints/app/create.ts | 48 |
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 }); |