API: Better error response

This commit is contained in:
syuilo 2018-10-26 14:38:34 +09:00
parent ab8a730c5e
commit cd439c770e
2 changed files with 12 additions and 2 deletions

View file

@ -62,7 +62,15 @@ export default (endpoint: string, user: IUser, app: IApp, data: any, file?: any)
console.warn(`SLOW API CALL DETECTED: ${ep.name} (${time}ms)`);
}
} catch (e) {
rej(e.message);
if (e.name == 'INVALID_PARAM') {
rej({
code: e.name,
param: e.param,
reason: e.message
});
} else {
rej(e);
}
return;
}

View file

@ -12,7 +12,9 @@ export default function <T extends Defs>(defs: T, params: any): [{
Object.keys(defs.params).some(k => {
const [v, e] = defs.params[k].get(params[k]);
if (e) {
err = e;
err = new Error(e.message);
err.name = 'INVALID_PARAM';
(err as any).param = k;
return true;
} else {
if (v === undefined && defs.params[k].data.default) {