typenexus
Version:
TypeNexus is a good tool for API encapsulation and management. It provides a clean and lightweight way to package TypeORM functionality, helping you build applications faster while reducing template code redundancy and type conversion work.
40 lines (39 loc) • 1.35 kB
JavaScript
import { BadRequestError } from './BadRequestError.js';
/**
* Thrown when parameter is required, but was missing in a user request.
*/
export class ParamRequiredError extends BadRequestError {
name = 'ParamRequiredError';
constructor(action, param) {
super();
Object.setPrototypeOf(this, ParamRequiredError.prototype);
let paramName;
switch (param.type) {
case 'param':
paramName = `Parameter "${param.name}" is`;
break;
case 'body':
paramName = 'Request body is';
break;
case 'body-param':
paramName = `Body parameter "${param.name}" is`;
break;
case 'query':
paramName = `Query parameter "${param.name}" is`;
break;
case 'header':
paramName = `Header "${param.name}" is`;
break;
case 'session':
paramName = 'Session is';
break;
case 'cookie':
paramName = 'Cookie is';
break;
default:
paramName = 'Parameter is';
}
const uri = `${action.request.method} ${action.request.url}`;
this.message = `${paramName} required for request on ${uri}`;
}
}