@xrystal/core 3.19.3 → 3.19.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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "Yusuf Yasir KAYGUSUZ",
3
3
  "name": "@xrystal/core",
4
- "version": "3.19.3",
4
+ "version": "3.19.5",
5
5
  "description": "Project core for xrystal",
6
6
  "publishConfig": {
7
7
  "access": "public",
@@ -67,7 +67,7 @@ export declare abstract class ControllerService extends Controller {
67
67
  }): Promise<void>;
68
68
  schema({ checks, logic, response }: {
69
69
  checks?: (args: any) => Promise<any>;
70
- logic: (args: any) => Promise<any>;
70
+ logic?: (args: any) => Promise<any>;
71
71
  response?: (args: any) => Promise<any>;
72
72
  }): Promise<any>;
73
73
  }
@@ -82,12 +82,7 @@ export class ControllerService extends Controller {
82
82
  const currentReq = this.req;
83
83
  const currentRes = this.res;
84
84
  const payload = { req: currentReq, res: currentRes };
85
- const convertedPayload = {
86
- ...payload,
87
- query: currentReq.query,
88
- body: currentReq.body,
89
- params: currentReq.params
90
- };
85
+ const convertedPayload = { ...payload, query: currentReq.query, body: currentReq.body, params: currentReq.params };
91
86
  if (checks) {
92
87
  const checkResult = await checks({ payload, convertedPayload });
93
88
  if (checkResult === false || (checkResult && typeof checkResult === 'object' && !Array.isArray(checkResult))) {
@@ -98,28 +93,42 @@ export class ControllerService extends Controller {
98
93
  }).getResponse);
99
94
  }
100
95
  }
101
- const logicResult = await logic({ payload, convertedPayload });
96
+ const logicResult = logic ? await logic({ payload, convertedPayload }) : null;
102
97
  if (logicResult?.status === false) {
103
98
  return currentRes.status(logicResult.code || 400).send(new ResponseSchema({
104
99
  status: false,
105
- message: logicResult.message,
100
+ message: logicResult.message || '',
106
101
  code: logicResult.code || 400
107
102
  }).getResponse);
108
103
  }
109
104
  if (logicResult instanceof Response)
110
105
  return logicResult;
111
- if (response) {
112
- const resResult = await response({ payload, convertedPayload, logicResult });
113
- const messageData = Array.isArray(resResult) ? resResult : resResult?.message;
114
- return currentRes.status(200).send(new ResponseSchema({
115
- status: true,
116
- message: Array.isArray(messageData)
117
- ? responseMessageHelper.successFully(messageData[0], messageData[1], currentReq.t)
118
- : (messageData || ''),
119
- payload: logicResult?.payload !== undefined ? logicResult.payload : logicResult
120
- }).getResponse);
106
+ const resResult = response ? await response({ payload, convertedPayload, logicResult }) : logicResult;
107
+ let finalMessage = '';
108
+ const messageSource = resResult?.message || (typeof resResult === 'string' || Array.isArray(resResult) ? resResult : '');
109
+ if (Array.isArray(messageSource)) {
110
+ finalMessage = responseMessageHelper.successFully(messageSource[0], messageSource[1], currentReq.t);
111
+ }
112
+ else if (typeof messageSource === 'string' && messageSource !== '') {
113
+ if (messageSource.startsWith('@')) {
114
+ finalMessage = responseMessageHelper.successFully(messageSource.substring(1), '', currentReq.t);
115
+ }
116
+ else {
117
+ finalMessage = currentReq.t(messageSource);
118
+ }
121
119
  }
122
- return currentRes.send(logicResult?.payload !== undefined ? logicResult.payload : logicResult);
120
+ let finalPayload = undefined;
121
+ if (logic) {
122
+ finalPayload = logicResult?.payload !== undefined ? logicResult.payload : logicResult;
123
+ if (finalPayload === messageSource || (typeof finalPayload === 'object' && finalPayload?.message === messageSource)) {
124
+ finalPayload = undefined;
125
+ }
126
+ }
127
+ return currentRes.status(200).send(new ResponseSchema({
128
+ status: true,
129
+ message: finalMessage,
130
+ payload: finalPayload
131
+ }).getResponse);
123
132
  }
124
133
  catch (error) {
125
134
  this.logger.winston.log({