ggez-banking-sdk
Version:
A Node.js package to handle GGEZ Banking API endpoints, Simplify the process of managing CRUD operations with this efficient and easy-to-use package.
52 lines (51 loc) • 1.77 kB
JavaScript
import { createDefaultBaseResult, fillResultByError } from "../../api";
import { HttpStatusCode } from "axios";
import { ResultHelper } from "./resultHelper";
import { SystemResponses } from "../../constant";
class ResponseHelper {
static onResponse = (res) => {
const isStringData = typeof res.data === "string";
if (isStringData) {
res.data = JSON.parse(res.data);
}
const defaultResult = {
code: SystemResponses.Approved,
message: "Operation completed successfully",
friendly_message: "Operation completed successfully",
description: "Operation completed successfully",
};
if (!res.data.result) {
res.data = {
...createDefaultBaseResult({
result: defaultResult,
}),
...res.data,
};
if (isStringData) {
res.data = JSON.stringify(res.data);
}
}
return res;
};
static onError = (error) => {
const data = fillResultByError(error);
return {
data,
status: error?.response?.status ?? HttpStatusCode.BadRequest,
statusText: error?.response?.statusText ?? "Bad Request",
headers: error?.response?.headers ?? {},
config: error?.config ?? {},
};
};
static getApiResponse = (res) => {
const { data, status } = res;
const { result } = data;
return {
data,
success: ResultHelper.isApproved(result),
message: result.friendly_message,
error: status >= HttpStatusCode.BadRequest ? result.message : null,
};
};
}
export { ResponseHelper };