Resolve #2623
This commit is contained in:
@ -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,
|
||||
|
||||
params: {
|
||||
name: {
|
||||
validator: $.str
|
||||
},
|
||||
|
||||
description: {
|
||||
validator: $.str
|
||||
},
|
||||
|
||||
permission: {
|
||||
validator: $.arr($.str).unique()
|
||||
},
|
||||
|
||||
// TODO: Check it is valid url
|
||||
callbackUrl: {
|
||||
validator: $.str.optional.nullable,
|
||||
default: null as any
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 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');
|
||||
|
||||
// Get 'description' parameter
|
||||
const [description, descriptionErr] = $.str.get(params.description);
|
||||
if (descriptionErr) return rej('invalid description param');
|
||||
|
||||
// Get 'permission' parameter
|
||||
const [permission, permissionErr] = $.arr($.str).unique().get(params.permission);
|
||||
if (permissionErr) return rej('invalid permission param');
|
||||
|
||||
// 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');
|
||||
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
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user