123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import { Request, Response } from "express";
- interface PRASResponse extends Response {
- pras: {
- ok: (message: string, data: any, code: string, extra: any) => void;
- created: (message: string, data: any, code: string, extra: any) => void;
- badRequest: (message: string, data: any, code: string, extra: any) => void;
- unauthorized: (
- message: string,
- data: any,
- code: string,
- extra: any
- ) => void;
- forbidden: (message: string, data: any, code: string, extra: any) => void;
- notFound: (message: string, data: any, code: string, extra: any) => void;
- serverError: (message: string, data: any, code: string, extra: any) => void;
- customMessage: (
- statusCode: number,
- message: string,
- data: any,
- code: string,
- extra: any
- ) => void;
- };
- }
- export class PRAS {
- private getPRASResultObject(
- status: string,
- message: string,
- data: any,
- code: string,
- extra: any
- ) {
- return {
- status: status || "OK",
- message: message || "",
- data: data || null,
- code: code || "UNKNOWN_CODE",
- extra: extra || null,
- };
- }
- public responseMiddleware() {
- return (req: Request, res: PRASResponse, next: Function): void => {
- res.pras = {
- ok: (message, data, code, extra) => {
- res
- .status(200)
- .json(this.getPRASResultObject("OK", message, data, code, extra));
- },
- created: (message, data, code, extra) => {
- res
- .status(201)
- .json(this.getPRASResultObject("OK", message, data, code, extra));
- },
- badRequest: (message, data, code, extra) => {
- res
- .status(400)
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
- },
- unauthorized: (message, data, code, extra) => {
- res
- .status(401)
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
- },
- forbidden: (message, data, code, extra) => {
- res
- .status(403)
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
- },
- notFound: (message, data, code, extra) => {
- res
- .status(404)
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
- },
- serverError: (message, data, code, extra) => {
- res
- .status(500)
- .json(
- this.getPRASResultObject("ERROR", message, data, code, extra)
- );
- },
- customMessage: (statusCode, message, data, code, extra) => {
- let status;
- if (statusCode >= 500) {
- status = "ERROR";
- } else if (statusCode >= 400) {
- status = "FAIL";
- } else {
- status = "OK";
- }
- res
- .status(statusCode)
- .json(this.getPRASResultObject(status, message, data, code, extra));
- },
- };
- next();
- };
- }
- }
- export default new PRAS();
|