UNPKG

steady-api

Version:

Configurable REST API built with Express and TypeScript

42 lines (35 loc) 1.09 kB
import { IErrorData, ErrorResponse } from './ErrorResponse'; import { ISuccessData, SuccessResponse } from './SuccessResponse'; import { Request, Response } from 'express'; export interface IRouteHandlerAction { params: object callback: (err: IErrorData, data?: ISuccessData) => void } export class DefaultRouteHandler { protected action; protected values; protected req; protected res; constructor(values: object, action: IRouteHandlerAction, req: Request, res: Response) { this.values = values; this.action = action; this.req = req; this.res = res; } handle() { return this.action(this.values, (err: IErrorData, data?: ISuccessData) => { if (err) { const response = new ErrorResponse({ req: this.req, res: this.res, errorMessage: err.errorMessage, errors: err.errors, status: err.status }); return response.send(); } const response = new SuccessResponse({ req: this.req, res: this.res, data: data, status: 200 }) return response.send(); }); } }