@xrystal/core 3.24.4 → 3.24.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -52,7 +52,7 @@ export declare abstract class BaseController {
|
|
|
52
52
|
export default abstract class Controller extends BaseController implements IProvide<any> {
|
|
53
53
|
constructor();
|
|
54
54
|
onInit(): Promise<void>;
|
|
55
|
-
|
|
55
|
+
protected parseMessage(msg: any, t: Function, isError?: boolean): string;
|
|
56
56
|
schema({ checks, logic, response }: {
|
|
57
57
|
checks?: (args: any) => Promise<any>;
|
|
58
58
|
logic?: (args: any) => Promise<any>;
|
|
@@ -41,12 +41,7 @@ export class BaseController {
|
|
|
41
41
|
get res() {
|
|
42
42
|
const store = this.currentStore;
|
|
43
43
|
const self = this;
|
|
44
|
-
const fallbackRes = {
|
|
45
|
-
status: function () { return this; },
|
|
46
|
-
send: (d) => d,
|
|
47
|
-
json: function (d) { return this.send(d); },
|
|
48
|
-
locals: {}
|
|
49
|
-
};
|
|
44
|
+
const fallbackRes = { status: function () { return this; }, send: (d) => d, json: function (d) { return this.send(d); }, locals: {} };
|
|
50
45
|
if (!store)
|
|
51
46
|
return fallbackRes;
|
|
52
47
|
if (!store.metadata)
|
|
@@ -68,26 +63,17 @@ export class BaseController {
|
|
|
68
63
|
let bizCode = store.metadata._code || 200;
|
|
69
64
|
let httpStatus = store.metadata._statusCode;
|
|
70
65
|
if (!httpStatus) {
|
|
71
|
-
httpStatus = (bizCode >= 100 && bizCode <= 101) || (bizCode >= 200 && bizCode <= 599)
|
|
72
|
-
? bizCode
|
|
73
|
-
: (bizCode === 0 || (bizCode >= 200 && bizCode <= 299) ? 200 : 400);
|
|
66
|
+
httpStatus = (bizCode >= 100 && bizCode <= 101) || (bizCode >= 200 && bizCode <= 599) ? bizCode : (bizCode === 0 || (bizCode >= 200 && bizCode <= 299) ? 200 : 400);
|
|
74
67
|
}
|
|
75
|
-
const body = isRaw || typeof data === 'string'
|
|
76
|
-
|
|
77
|
-
: JSON.stringify(data?.getResponse ? data.getResponse : data);
|
|
78
|
-
return new Response(body, {
|
|
79
|
-
status: httpStatus,
|
|
80
|
-
headers: { 'content-type': contentType }
|
|
81
|
-
});
|
|
68
|
+
const body = isRaw || typeof data === 'string' ? data : JSON.stringify(data?.getResponse ? data.getResponse : data);
|
|
69
|
+
return new Response(body, { status: httpStatus, headers: { 'content-type': contentType } });
|
|
82
70
|
},
|
|
83
71
|
json(data) { return this.send(data); }
|
|
84
72
|
};
|
|
85
73
|
}
|
|
86
74
|
}
|
|
87
75
|
export default class Controller extends BaseController {
|
|
88
|
-
constructor() {
|
|
89
|
-
super();
|
|
90
|
-
}
|
|
76
|
+
constructor() { super(); }
|
|
91
77
|
async onInit() {
|
|
92
78
|
const protocols = this.system?.tmp?.configs?.loaders?.controller?.protocols;
|
|
93
79
|
this.supportedProtocols = Array.isArray(protocols) ? protocols : [protocols || ProtocolEnum.HTTP];
|
|
@@ -111,9 +97,8 @@ export default class Controller extends BaseController {
|
|
|
111
97
|
const p1Raw = params[0] || '';
|
|
112
98
|
const p1 = (p1Raw === method || p1Raw === 'unsuccessful' || p1Raw === 'success_process') ? '' : t(p1Raw);
|
|
113
99
|
const p2 = params.slice(1).map(v => t(v)).join(' ');
|
|
114
|
-
if (responseMessageHelper[method])
|
|
100
|
+
if (responseMessageHelper[method])
|
|
115
101
|
return responseMessageHelper[method](p1, p2, t);
|
|
116
|
-
}
|
|
117
102
|
return isError ? responseMessageHelper.unsuccessful(p1, p2, t) : responseMessageHelper.successfully(p1, p2, t);
|
|
118
103
|
}
|
|
119
104
|
async schema({ checks, logic, response }) {
|
|
@@ -121,15 +106,7 @@ export default class Controller extends BaseController {
|
|
|
121
106
|
const currentRes = this.res;
|
|
122
107
|
const store = this.currentStore;
|
|
123
108
|
try {
|
|
124
|
-
const p = {
|
|
125
|
-
req: currentReq,
|
|
126
|
-
res: currentRes,
|
|
127
|
-
body: currentReq.body,
|
|
128
|
-
query: currentReq.query,
|
|
129
|
-
params: currentReq.params,
|
|
130
|
-
t: currentReq.t,
|
|
131
|
-
accounts: currentReq.accounts
|
|
132
|
-
};
|
|
109
|
+
const p = { req: currentReq, res: currentRes, body: currentReq.body, query: currentReq.query, params: currentReq.params, t: currentReq.t, accounts: currentReq.accounts };
|
|
133
110
|
const extractMeta = (obj) => {
|
|
134
111
|
if (!obj || typeof obj !== 'object')
|
|
135
112
|
return;
|
|
@@ -142,22 +119,15 @@ export default class Controller extends BaseController {
|
|
|
142
119
|
const checkResult = await checks(p);
|
|
143
120
|
if (checkResult !== true) {
|
|
144
121
|
extractMeta(checkResult);
|
|
145
|
-
const bizCode = store?.metadata
|
|
146
|
-
const msg = checkResult?.message || checkResult;
|
|
122
|
+
const bizCode = store?.metadata._code ?? 400;
|
|
147
123
|
let errorPayload = undefined;
|
|
148
124
|
if (checkResult?.payload) {
|
|
149
125
|
const d = checkResult.payload.data ?? checkResult.payload;
|
|
150
|
-
const e = checkResult.payload.extraData;
|
|
151
126
|
errorPayload = { data: d };
|
|
152
|
-
if (
|
|
153
|
-
errorPayload.extraData =
|
|
127
|
+
if (checkResult.payload.extraData !== undefined)
|
|
128
|
+
errorPayload.extraData = checkResult.payload.extraData;
|
|
154
129
|
}
|
|
155
|
-
return currentRes.status(bizCode).send(new ResponseSchema({
|
|
156
|
-
status: false,
|
|
157
|
-
message: this.parseMessage(msg, currentReq.t, true),
|
|
158
|
-
code: bizCode,
|
|
159
|
-
payload: errorPayload
|
|
160
|
-
}).getResponse);
|
|
130
|
+
return currentRes.status(bizCode).send(new ResponseSchema({ status: false, message: this.parseMessage(checkResult?.message || checkResult, currentReq.t, true), code: bizCode, payload: errorPayload }).getResponse);
|
|
161
131
|
}
|
|
162
132
|
}
|
|
163
133
|
let logicResult = logic ? await logic(p) : {};
|
|
@@ -169,22 +139,16 @@ export default class Controller extends BaseController {
|
|
|
169
139
|
extractMeta(logicResult);
|
|
170
140
|
}
|
|
171
141
|
if (logicResult?.status === false) {
|
|
172
|
-
const bizCode = store?.metadata
|
|
173
|
-
return currentRes.status(bizCode).send(new ResponseSchema({
|
|
174
|
-
status: false,
|
|
175
|
-
message: this.parseMessage(logicResult.message, currentReq.t, true),
|
|
176
|
-
code: bizCode
|
|
177
|
-
}).getResponse);
|
|
142
|
+
const bizCode = store?.metadata._code ?? 400;
|
|
143
|
+
return currentRes.status(bizCode).send(new ResponseSchema({ status: false, message: this.parseMessage(logicResult.message, currentReq.t, true), code: bizCode }).getResponse);
|
|
178
144
|
}
|
|
179
145
|
const resResult = response ? await response({ ...p, logicResult }) : logicResult;
|
|
180
146
|
extractMeta(resResult);
|
|
181
|
-
if (resResult instanceof Response || resResult instanceof Blob || resResult instanceof Uint8Array || resResult instanceof ArrayBuffer)
|
|
147
|
+
if (resResult instanceof Response || resResult instanceof Blob || resResult instanceof Uint8Array || resResult instanceof ArrayBuffer)
|
|
182
148
|
return currentRes.status(200).send(resResult);
|
|
183
|
-
}
|
|
184
149
|
let finalData = undefined;
|
|
185
150
|
let finalExtraData = undefined;
|
|
186
151
|
let messageSource = 'success_process';
|
|
187
|
-
let bizSuccessCode = store?.metadata?._code || 200;
|
|
188
152
|
const extractData = (obj) => {
|
|
189
153
|
if (!obj || typeof obj !== 'object')
|
|
190
154
|
return;
|
|
@@ -211,6 +175,7 @@ export default class Controller extends BaseController {
|
|
|
211
175
|
else {
|
|
212
176
|
extractData(resResult !== undefined ? resResult : logicResult);
|
|
213
177
|
}
|
|
178
|
+
const bizSuccessCode = store?.metadata._code || 200;
|
|
214
179
|
let payload = undefined;
|
|
215
180
|
if (finalData !== undefined || finalExtraData !== undefined) {
|
|
216
181
|
payload = {};
|
|
@@ -219,21 +184,12 @@ export default class Controller extends BaseController {
|
|
|
219
184
|
if (finalExtraData !== undefined)
|
|
220
185
|
payload.extraData = finalExtraData;
|
|
221
186
|
}
|
|
222
|
-
return currentRes.status(bizSuccessCode).send(new ResponseSchema({
|
|
223
|
-
status: true,
|
|
224
|
-
message: this.parseMessage(messageSource, currentReq.t, false),
|
|
225
|
-
payload,
|
|
226
|
-
code: bizSuccessCode
|
|
227
|
-
}).getResponse);
|
|
187
|
+
return currentRes.status(bizSuccessCode).send(new ResponseSchema({ status: true, message: this.parseMessage(messageSource, currentReq.t, false), payload, code: bizSuccessCode }).getResponse);
|
|
228
188
|
}
|
|
229
189
|
catch (error) {
|
|
230
190
|
this.logger?.log(LoggerLayerEnum.ERROR, `Controller Error: ${error.message}`);
|
|
231
191
|
const t = currentReq?.t || ((k) => k);
|
|
232
|
-
return this.res.status(500).send(new ResponseSchema({
|
|
233
|
-
status: false,
|
|
234
|
-
message: this.parseMessage(error.message, t, true),
|
|
235
|
-
code: 500
|
|
236
|
-
}).getResponse);
|
|
192
|
+
return this.res.status(500).send(new ResponseSchema({ status: false, message: this.parseMessage(error.message, t, true), code: 500 }).getResponse);
|
|
237
193
|
}
|
|
238
194
|
}
|
|
239
195
|
}
|