nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
138 lines (137 loc) • 3.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* RestApiConfiguration class provides property and methods to configure Rest api
*/
class RestApiConfiguration {
constructor() {
this._filters = [];
this._routes = [];
}
/**
* set AuthenticationFilter
* @param filter - class that implemented interface IAuthenticate
*/
set AuthenticationFilter(filter) {
this._authenticationFilter = filter;
}
/**
* get AuthenticationFilter
*/
// tslint:disable-next-line:typedef
get AuthenticationFilter() {
return this._authenticationFilter;
}
/**
* set AuthorizeFilter
* @param filter - class that implemented interface IAuthorize
*/
set AuthorizeFilter(filter) {
this._authorizeFilter = filter;
}
/**
* get AuthorizeFilter
*/
// tslint:disable-next-line:typedef
get AuthorizeFilter() {
return this._authorizeFilter;
}
/**
* set ExceptionHandler
* @param handler - class that implemented interface IExceptionHandler
*/
set ExceptionHandler(handler) {
this._exceptionHandler = handler;
}
/**
* get ExceptionHandler
*/
// tslint:disable-next-line:typedef
get ExceptionHandler() {
return this._exceptionHandler;
}
/**
* get AuthHandler
*/
// tslint:disable-next-line:typedef
get AuthHandler() {
return this._authHandler;
}
/**
* set IAuthHandler
*/
set AuthHandler(authHandler) {
this._authHandler = authHandler;
}
/**
* set ModelValidationHandler
* @param handler - class that implemented interface IExceptionHandler
*/
set ModelValidationHandler(handler) {
this._modelValidationHandler = handler;
}
/**
* get ModelValidationHandler
*/
// tslint:disable-next-line:typedef
get ModelValidationHandler() {
return this._modelValidationHandler;
}
/**
* set HttpResponseHandler
* @param handler - class that implemented interface IHttpResponseHandler
*/
set HttpResponseHandler(handler) {
this._httpResponseHandler = handler;
}
/**
* get HttpResponseHandler
*/
// tslint:disable-next-line:typedef
get HttpResponseHandler() {
return this._httpResponseHandler;
}
/**
* get registered filters
*/
// tslint:disable-next-line:typedef
get Filters() {
return this._filters;
}
/**
* register global filters
* @param filter - class that implemented interface IFilter
*/
addFilter(filter) {
this._filters.push(filter);
}
/**
* get HttpRequestHandler
*/
// tslint:disable-next-line:typedef
get HttpRequestHandler() {
return this._httpRrequestHandler;
}
/**
* set HttpRequestHandler
* @param httpRequestHandler - class that implemented interface IHttpRequestHandler
*/
set HttpRequestHandler(httpRequestHandler) {
this._httpRrequestHandler = httpRequestHandler;
}
/**
* get registered api routes
*/
// tslint:disable-next-line:typedef
get routes() {
return this._routes;
}
/**
* method to add api routes
* @param routes Route Object array
*/
addRoutes(routes) {
this._routes = [...this._routes, ...routes];
}
}
exports.RestApiConfiguration = RestApiConfiguration;