|
@@ -26,6 +26,7 @@ interface PRASResponse extends Response {
|
|
|
|
|
|
export class PRAS {
|
|
export class PRAS {
|
|
private getPRASResultObject(
|
|
private getPRASResultObject(
|
|
|
|
+ statusCode: number,
|
|
status: string,
|
|
status: string,
|
|
message: string,
|
|
message: string,
|
|
data: any,
|
|
data: any,
|
|
@@ -33,6 +34,7 @@ export class PRAS {
|
|
extra: any
|
|
extra: any
|
|
) {
|
|
) {
|
|
return {
|
|
return {
|
|
|
|
+ statusCode: statusCode || 200,
|
|
status: status || "OK",
|
|
status: status || "OK",
|
|
message: message || "",
|
|
message: message || "",
|
|
data: data || null,
|
|
data: data || null,
|
|
@@ -45,41 +47,39 @@ export class PRAS {
|
|
return (req: Request, res: PRASResponse, next: Function): void => {
|
|
return (req: Request, res: PRASResponse, next: Function): void => {
|
|
res.pras = {
|
|
res.pras = {
|
|
ok: (message, data, code, extra) => {
|
|
ok: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(200)
|
|
|
|
- .json(this.getPRASResultObject("OK", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(200, "OK", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
created: (message, data, code, extra) => {
|
|
created: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(201)
|
|
|
|
- .json(this.getPRASResultObject("OK", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(201, "OK", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
badRequest: (message, data, code, extra) => {
|
|
badRequest: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(400)
|
|
|
|
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(400, "FAIL", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
unauthorized: (message, data, code, extra) => {
|
|
unauthorized: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(401)
|
|
|
|
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(401, "FAIL", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
forbidden: (message, data, code, extra) => {
|
|
forbidden: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(403)
|
|
|
|
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(403, "FAIL", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
notFound: (message, data, code, extra) => {
|
|
notFound: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(404)
|
|
|
|
- .json(this.getPRASResultObject("FAIL", message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(404, "FAIL", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
serverError: (message, data, code, extra) => {
|
|
serverError: (message, data, code, extra) => {
|
|
- res
|
|
|
|
- .status(500)
|
|
|
|
- .json(
|
|
|
|
- this.getPRASResultObject("ERROR", message, data, code, extra)
|
|
|
|
- );
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(500, "ERROR", message, data, code, extra)
|
|
|
|
+ );
|
|
},
|
|
},
|
|
customMessage: (statusCode, message, data, code, extra) => {
|
|
customMessage: (statusCode, message, data, code, extra) => {
|
|
let status;
|
|
let status;
|
|
@@ -90,12 +90,46 @@ export class PRAS {
|
|
} else {
|
|
} else {
|
|
status = "OK";
|
|
status = "OK";
|
|
}
|
|
}
|
|
- res
|
|
|
|
- .status(statusCode)
|
|
|
|
- .json(this.getPRASResultObject(status, message, data, code, extra));
|
|
|
|
|
|
+ res.json(
|
|
|
|
+ this.getPRASResultObject(
|
|
|
|
+ statusCode,
|
|
|
|
+ status,
|
|
|
|
+ message,
|
|
|
|
+ data,
|
|
|
|
+ code,
|
|
|
|
+ extra
|
|
|
|
+ )
|
|
|
|
+ );
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ if (/application\/json/.test(res.get("Content-Type"))) {
|
|
|
|
+ const originalSend = res.send;
|
|
|
|
+ res.send = (body) => {
|
|
|
|
+ if (typeof body === "string") {
|
|
|
|
+ body = JSON.parse(body);
|
|
|
|
+ }
|
|
|
|
+ if (typeof body === "string") {
|
|
|
|
+ body = { data: body };
|
|
|
|
+ } else if (!body.hasOwnProperty("data")) {
|
|
|
|
+ body = { data: body };
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const prasBody = this.getPRASResultObject(
|
|
|
|
+ body.statusCode,
|
|
|
|
+ body.status,
|
|
|
|
+ body.message,
|
|
|
|
+ body.data,
|
|
|
|
+ body.code,
|
|
|
|
+ body.extra
|
|
|
|
+ );
|
|
|
|
+ res.status(Number(prasBody) || null);
|
|
|
|
+ delete prasBody.statusCode;
|
|
|
|
+
|
|
|
|
+ return originalSend(JSON.stringify(prasBody));
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+
|
|
next();
|
|
next();
|
|
};
|
|
};
|
|
}
|
|
}
|