-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathresponse-helper.js
37 lines (29 loc) · 982 Bytes
/
response-helper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const ResKit = require("./response-kit");
const { ResData } = require("./response-data");
const defaultConfig = {
defaultStatusCode: 500,
defaultMessage: "Internal Server Error",
defaultSuccess: false,
};
const ResHelper = ({ status, data, error }, config = {}) => {
// Merge user config with default config
const mergedConfig = { ...defaultConfig, ...config };
let result = {
statusCode: status || mergedConfig.defaultStatusCode,
message: "",
success: mergedConfig.defaultSuccess,
};
result.statusCode <= 199 || result.statusCode >= 225
? (
(result.description = ResKit[result.statusCode].description),
(result.success = false)
)
: null;
result.message = data?.message || ResKit[result.statusCode].message;
const typeData = typeof data;
typeData === "object"
? (result.data = ResData(data))
: (result.data = data || error || null);
return result;
};
module.exports = { ResHelper, defaultConfig };