my-q-format-response-aws-lambda 1.0.39 → 1.0.41
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/index.js +48 -37
- package/index.ts +156 -100
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -4,11 +4,11 @@ exports.controlResponseNull = exports.normaliseMongoPaginate = exports.normalise
|
|
|
4
4
|
class StatusResult {
|
|
5
5
|
}
|
|
6
6
|
exports.StatusResult = StatusResult;
|
|
7
|
-
StatusResult.ok =
|
|
8
|
-
StatusResult.error =
|
|
9
|
-
StatusResult.notFound =
|
|
10
|
-
StatusResult.unauthorized =
|
|
11
|
-
StatusResult.needRedirect =
|
|
7
|
+
StatusResult.ok = "Ok";
|
|
8
|
+
StatusResult.error = "Error";
|
|
9
|
+
StatusResult.notFound = "NotFound";
|
|
10
|
+
StatusResult.unauthorized = "Unauthorized";
|
|
11
|
+
StatusResult.needRedirect = "NeedRedirect";
|
|
12
12
|
class StatusCode {
|
|
13
13
|
}
|
|
14
14
|
exports.StatusCode = StatusCode;
|
|
@@ -64,7 +64,7 @@ StatusCode.BadGateway = 502;
|
|
|
64
64
|
class ResponseBodyVO {
|
|
65
65
|
constructor() {
|
|
66
66
|
this.statusResult = StatusResult.ok;
|
|
67
|
-
this.message =
|
|
67
|
+
this.message = "";
|
|
68
68
|
this.data = null;
|
|
69
69
|
this.count = null;
|
|
70
70
|
this.error = null;
|
|
@@ -75,7 +75,7 @@ exports.ResponseBodyVO = ResponseBodyVO;
|
|
|
75
75
|
class ResponseVO {
|
|
76
76
|
constructor() {
|
|
77
77
|
this.statusCode = StatusCode.OK;
|
|
78
|
-
this.body =
|
|
78
|
+
this.body = "";
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
exports.ResponseVO = ResponseVO;
|
|
@@ -83,7 +83,7 @@ class Result {
|
|
|
83
83
|
constructor({ statusCode = StatusCode.OK, statusResult = StatusResult.ok, message, data = null, count = null, error = null, redirectTo = undefined, bodyWrap = true, }) {
|
|
84
84
|
this.statusCode = statusCode;
|
|
85
85
|
this.statusResult = statusResult;
|
|
86
|
-
this.message = !message ?
|
|
86
|
+
this.message = !message ? "" : message;
|
|
87
87
|
this.count = count;
|
|
88
88
|
this.data = data;
|
|
89
89
|
this.error = error;
|
|
@@ -95,7 +95,11 @@ class Result {
|
|
|
95
95
|
* If use to AWS Appsync need response value without body wrap
|
|
96
96
|
*/
|
|
97
97
|
bodyToString() {
|
|
98
|
-
let _err = this.error && this.error.message
|
|
98
|
+
let _err = this.error && this.error.message
|
|
99
|
+
? this.error.message
|
|
100
|
+
: !this.error
|
|
101
|
+
? null
|
|
102
|
+
: JSON.stringify(this.error);
|
|
99
103
|
const valueBody = {
|
|
100
104
|
statusResult: this.statusResult,
|
|
101
105
|
message: this.message,
|
|
@@ -120,7 +124,7 @@ class CreateResponse {
|
|
|
120
124
|
* @param message
|
|
121
125
|
* @param bodyWrap
|
|
122
126
|
*/
|
|
123
|
-
static success({ data = null, count = null, message =
|
|
127
|
+
static success({ data = null, count = null, message = "success", bodyWrap = true, }) {
|
|
124
128
|
const result = new Result({
|
|
125
129
|
statusCode: StatusCode.OK,
|
|
126
130
|
statusResult: StatusResult.ok,
|
|
@@ -137,7 +141,7 @@ class CreateResponse {
|
|
|
137
141
|
* @param message
|
|
138
142
|
* @param bodyWrap
|
|
139
143
|
*/
|
|
140
|
-
static created({ data, message =
|
|
144
|
+
static created({ data, message = "created", bodyWrap = true, }) {
|
|
141
145
|
const result = new Result({
|
|
142
146
|
statusCode: StatusCode.Created,
|
|
143
147
|
statusResult: StatusResult.ok,
|
|
@@ -153,7 +157,7 @@ class CreateResponse {
|
|
|
153
157
|
* @param message
|
|
154
158
|
* @param bodyWrap
|
|
155
159
|
*/
|
|
156
|
-
static updated({ data, message =
|
|
160
|
+
static updated({ data, message = "updated", bodyWrap = true, }) {
|
|
157
161
|
const result = new Result({
|
|
158
162
|
statusCode: StatusCode.OK,
|
|
159
163
|
statusResult: StatusResult.ok,
|
|
@@ -169,7 +173,7 @@ class CreateResponse {
|
|
|
169
173
|
* @param message
|
|
170
174
|
* @param bodyWrap
|
|
171
175
|
*/
|
|
172
|
-
static updateOrCreate({ data, message =
|
|
176
|
+
static updateOrCreate({ data, message = "update_or_create", bodyWrap = true, }) {
|
|
173
177
|
const result = new Result({
|
|
174
178
|
statusCode: StatusCode.OK,
|
|
175
179
|
statusResult: StatusResult.ok,
|
|
@@ -185,7 +189,7 @@ class CreateResponse {
|
|
|
185
189
|
* @param message
|
|
186
190
|
* @param bodyWrap
|
|
187
191
|
*/
|
|
188
|
-
static notFound({ error = null, message =
|
|
192
|
+
static notFound({ error = null, message = "", bodyWrap = true, }) {
|
|
189
193
|
const result = new Result({
|
|
190
194
|
statusCode: StatusCode.NotFound,
|
|
191
195
|
statusResult: StatusResult.notFound,
|
|
@@ -203,7 +207,7 @@ class CreateResponse {
|
|
|
203
207
|
* @param message
|
|
204
208
|
* @param bodyWrap
|
|
205
209
|
*/
|
|
206
|
-
static error({ error = null, statusCode = StatusCode.BadRequest, message =
|
|
210
|
+
static error({ error = null, statusCode = StatusCode.BadRequest, message = "Error", bodyWrap = true, }) {
|
|
207
211
|
const result = new Result({
|
|
208
212
|
statusCode,
|
|
209
213
|
statusResult: StatusResult.error,
|
|
@@ -221,7 +225,7 @@ class CreateResponse {
|
|
|
221
225
|
* @param message
|
|
222
226
|
* @param bodyWrap
|
|
223
227
|
*/
|
|
224
|
-
static unauthorized({ error = null, statusCode = StatusCode.Unauthorized, message =
|
|
228
|
+
static unauthorized({ error = null, statusCode = StatusCode.Unauthorized, message = "Unauthorized", bodyWrap = true, }) {
|
|
225
229
|
const result = new Result({
|
|
226
230
|
statusCode,
|
|
227
231
|
statusResult: StatusResult.unauthorized,
|
|
@@ -239,7 +243,7 @@ class CreateResponse {
|
|
|
239
243
|
* @param message
|
|
240
244
|
* @param bodyWrap
|
|
241
245
|
*/
|
|
242
|
-
static redirect({ statusCode = StatusCode.MovedTemporarily, message =
|
|
246
|
+
static redirect({ statusCode = StatusCode.MovedTemporarily, message = "", bodyWrap = true, redirectTo = "", }) {
|
|
243
247
|
const result = new Result({
|
|
244
248
|
statusCode,
|
|
245
249
|
statusResult: StatusResult.needRedirect,
|
|
@@ -261,7 +265,7 @@ class CreateResponse {
|
|
|
261
265
|
* @param count
|
|
262
266
|
* @param bodyWrap
|
|
263
267
|
*/
|
|
264
|
-
static custom({ statusCode = StatusCode.OK, statusResult = StatusResult.ok, message =
|
|
268
|
+
static custom({ statusCode = StatusCode.OK, statusResult = StatusResult.ok, message = "", error = null, data = null, count = null, bodyWrap = true, }) {
|
|
265
269
|
const result = new Result({
|
|
266
270
|
statusCode,
|
|
267
271
|
statusResult,
|
|
@@ -275,7 +279,7 @@ class CreateResponse {
|
|
|
275
279
|
}
|
|
276
280
|
}
|
|
277
281
|
exports.CreateResponse = CreateResponse;
|
|
278
|
-
const messagesREST = (prefix, suffix =
|
|
282
|
+
const messagesREST = (prefix, suffix = "") => {
|
|
279
283
|
return {
|
|
280
284
|
TOTAL: `${prefix}_TOTAL${suffix}`,
|
|
281
285
|
NOT_FOUND: `${prefix}_NOT_FOUND${suffix}`,
|
|
@@ -283,6 +287,9 @@ const messagesREST = (prefix, suffix = '') => {
|
|
|
283
287
|
AUTHORISED: `${prefix}_AUTHORISED${suffix}`,
|
|
284
288
|
UNAUTHORISED: `${prefix}_UNAUTHORISED${suffix}`,
|
|
285
289
|
ERROR_AUTHORISED: `${prefix}_ERROR_AUTHORISED${suffix}`,
|
|
290
|
+
EXIST: `${prefix}_EXIST${suffix}`,
|
|
291
|
+
NOT_EXIST: `${prefix}_NOT_EXIST${suffix}`,
|
|
292
|
+
ERROR_EXIST: `${prefix}_ERROR_EXIST${suffix}`,
|
|
286
293
|
IDENTIFIER: `${prefix}_IDENTIFIER${suffix}`,
|
|
287
294
|
NOT_IDENTIFIER: `${prefix}_NOT_IDENTIFIER${suffix}`,
|
|
288
295
|
ERROR_IDENTIFIER: `${prefix}_ERROR_IDENTIFIER${suffix}`,
|
|
@@ -358,7 +365,7 @@ const messagesREST = (prefix, suffix = '') => {
|
|
|
358
365
|
};
|
|
359
366
|
};
|
|
360
367
|
exports.messagesREST = messagesREST;
|
|
361
|
-
exports.optionsPaginationParams = [
|
|
368
|
+
exports.optionsPaginationParams = ["limit", "skip", "count"];
|
|
362
369
|
/**
|
|
363
370
|
* Normalise filter for mongoose
|
|
364
371
|
* @param regexFields
|
|
@@ -367,15 +374,19 @@ exports.optionsPaginationParams = ['limit', 'skip', 'count'];
|
|
|
367
374
|
*/
|
|
368
375
|
const normaliseMongoFilter = (filter, regexFields, excludeFields) => {
|
|
369
376
|
const _filter = {};
|
|
370
|
-
const excludeParams = excludeFields && Array.isArray(excludeFields) && excludeFields.length > 0
|
|
371
|
-
|
|
377
|
+
const excludeParams = excludeFields && Array.isArray(excludeFields) && excludeFields.length > 0
|
|
378
|
+
? excludeFields
|
|
379
|
+
: exports.optionsPaginationParams;
|
|
372
380
|
Object.keys(filter).forEach((f) => {
|
|
373
381
|
const v = filter[f];
|
|
374
|
-
if (!(v === null ||
|
|
382
|
+
if (!(v === null ||
|
|
383
|
+
(typeof v === "number" && isNaN(v)) ||
|
|
384
|
+
v === Infinity ||
|
|
385
|
+
v === undefined ||
|
|
375
386
|
excludeParams.includes(f))) {
|
|
376
387
|
_filter[f] = filter[f];
|
|
377
388
|
if (regexFields.includes(f))
|
|
378
|
-
_filter[f] = { $regex: new RegExp(_filter[f],
|
|
389
|
+
_filter[f] = { $regex: new RegExp(_filter[f], "gi") };
|
|
379
390
|
}
|
|
380
391
|
});
|
|
381
392
|
return _filter;
|
|
@@ -398,42 +409,42 @@ exports.normaliseMongoPaginate = normaliseMongoPaginate;
|
|
|
398
409
|
const controlResponseNull = (data, okResultOf, prefix, bodyWrap = true) => {
|
|
399
410
|
let result;
|
|
400
411
|
if (data) {
|
|
401
|
-
if (okResultOf ===
|
|
412
|
+
if (okResultOf === "create") {
|
|
402
413
|
result = CreateResponse.created({
|
|
403
414
|
data,
|
|
404
415
|
message: (0, exports.messagesREST)(prefix).CREATE,
|
|
405
416
|
bodyWrap,
|
|
406
417
|
});
|
|
407
418
|
}
|
|
408
|
-
if (okResultOf ===
|
|
419
|
+
if (okResultOf === "update") {
|
|
409
420
|
result = CreateResponse.updated({
|
|
410
421
|
data,
|
|
411
422
|
message: (0, exports.messagesREST)(prefix).UPDATE,
|
|
412
423
|
bodyWrap,
|
|
413
424
|
});
|
|
414
425
|
}
|
|
415
|
-
if (okResultOf ===
|
|
426
|
+
if (okResultOf === "update_or_create") {
|
|
416
427
|
result = CreateResponse.updateOrCreate({
|
|
417
428
|
data,
|
|
418
429
|
message: (0, exports.messagesREST)(prefix).UPDATE_OR_CREATE,
|
|
419
430
|
bodyWrap,
|
|
420
431
|
});
|
|
421
432
|
}
|
|
422
|
-
if (okResultOf ===
|
|
433
|
+
if (okResultOf === "update_many") {
|
|
423
434
|
result = CreateResponse.updated({
|
|
424
435
|
data,
|
|
425
436
|
message: (0, exports.messagesREST)(prefix).UPDATE_MANY,
|
|
426
437
|
bodyWrap,
|
|
427
438
|
});
|
|
428
439
|
}
|
|
429
|
-
if (okResultOf ===
|
|
440
|
+
if (okResultOf === "increment") {
|
|
430
441
|
result = CreateResponse.updated({
|
|
431
442
|
data,
|
|
432
443
|
message: (0, exports.messagesREST)(prefix).INCREMENT,
|
|
433
444
|
bodyWrap,
|
|
434
445
|
});
|
|
435
446
|
}
|
|
436
|
-
if (okResultOf ===
|
|
447
|
+
if (okResultOf === "decrement") {
|
|
437
448
|
result = CreateResponse.updated({
|
|
438
449
|
data,
|
|
439
450
|
message: (0, exports.messagesREST)(prefix).DECREMENT,
|
|
@@ -442,18 +453,18 @@ const controlResponseNull = (data, okResultOf, prefix, bodyWrap = true) => {
|
|
|
442
453
|
}
|
|
443
454
|
}
|
|
444
455
|
else {
|
|
445
|
-
let messageErr =
|
|
446
|
-
if (okResultOf ===
|
|
456
|
+
let messageErr = "";
|
|
457
|
+
if (okResultOf === "create")
|
|
447
458
|
messageErr = (0, exports.messagesREST)(prefix).NOT_CREATE;
|
|
448
|
-
if (okResultOf ===
|
|
459
|
+
if (okResultOf === "update")
|
|
449
460
|
messageErr = (0, exports.messagesREST)(prefix).NOT_UPDATE;
|
|
450
|
-
if (okResultOf ===
|
|
461
|
+
if (okResultOf === "update_or_create")
|
|
451
462
|
messageErr = (0, exports.messagesREST)(prefix).NOT_UPDATE_OR_CREATE;
|
|
452
|
-
if (okResultOf ===
|
|
463
|
+
if (okResultOf === "update_many")
|
|
453
464
|
messageErr = (0, exports.messagesREST)(prefix).NOT_UPDATE_MANY;
|
|
454
|
-
if (okResultOf ===
|
|
465
|
+
if (okResultOf === "increment")
|
|
455
466
|
messageErr = (0, exports.messagesREST)(prefix).NOT_INCREMENT;
|
|
456
|
-
if (okResultOf ===
|
|
467
|
+
if (okResultOf === "decrement")
|
|
457
468
|
messageErr = (0, exports.messagesREST)(prefix).NOT_DECREMENT;
|
|
458
469
|
result = CreateResponse.error({
|
|
459
470
|
data: data,
|
package/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export class StatusResult {
|
|
2
|
-
static ok =
|
|
3
|
-
static error =
|
|
4
|
-
static notFound =
|
|
5
|
-
static unauthorized =
|
|
6
|
-
static needRedirect =
|
|
2
|
+
static ok = "Ok";
|
|
3
|
+
static error = "Error";
|
|
4
|
+
static notFound = "NotFound";
|
|
5
|
+
static unauthorized = "Unauthorized";
|
|
6
|
+
static needRedirect = "NeedRedirect";
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export class StatusCode {
|
|
@@ -20,7 +20,6 @@ export class StatusCode {
|
|
|
20
20
|
// static PartialContent = 206;
|
|
21
21
|
// static MultiStatus = 207;
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
static MultipleChoices = 300;
|
|
25
24
|
static MovedPermanently = 301;
|
|
26
25
|
static MovedTemporarily = 302;
|
|
@@ -30,7 +29,6 @@ export class StatusCode {
|
|
|
30
29
|
static TemporaryRedirect = 307;
|
|
31
30
|
// static PermanentRedirect = 308;
|
|
32
31
|
|
|
33
|
-
|
|
34
32
|
static BadRequest = 400;
|
|
35
33
|
static Unauthorized = 401;
|
|
36
34
|
static PaymentRequired = 402;
|
|
@@ -89,19 +87,19 @@ interface TResultIn {
|
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
interface TFuncParams {
|
|
92
|
-
statusCode?: StatusCode
|
|
93
|
-
statusResult?: StatusResult
|
|
94
|
-
message?: string
|
|
95
|
-
error?: TError
|
|
96
|
-
data?: TData
|
|
97
|
-
count?: TCount
|
|
90
|
+
statusCode?: StatusCode;
|
|
91
|
+
statusResult?: StatusResult;
|
|
92
|
+
message?: string;
|
|
93
|
+
error?: TError;
|
|
94
|
+
data?: TData;
|
|
95
|
+
count?: TCount;
|
|
98
96
|
redirectTo?: TRedirectTo;
|
|
99
97
|
bodyWrap?: boolean;
|
|
100
98
|
}
|
|
101
99
|
|
|
102
100
|
export class ResponseBodyVO {
|
|
103
101
|
statusResult: StatusResult = StatusResult.ok;
|
|
104
|
-
message: string =
|
|
102
|
+
message: string = "";
|
|
105
103
|
data: TData = null;
|
|
106
104
|
count: TCount = null;
|
|
107
105
|
error: TError = null;
|
|
@@ -110,11 +108,10 @@ export class ResponseBodyVO {
|
|
|
110
108
|
|
|
111
109
|
export class ResponseVO {
|
|
112
110
|
statusCode: StatusCode = StatusCode.OK;
|
|
113
|
-
body: string =
|
|
111
|
+
body: string = "";
|
|
114
112
|
}
|
|
115
113
|
|
|
116
|
-
export type ResponseVoAWS = ResponseVO | ResponseBodyVO
|
|
117
|
-
|
|
114
|
+
export type ResponseVoAWS = ResponseVO | ResponseBodyVO;
|
|
118
115
|
|
|
119
116
|
class Result {
|
|
120
117
|
private statusCode: StatusCode;
|
|
@@ -127,18 +124,18 @@ class Result {
|
|
|
127
124
|
private bodyWrap: boolean;
|
|
128
125
|
|
|
129
126
|
constructor({
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
127
|
+
statusCode = StatusCode.OK,
|
|
128
|
+
statusResult = StatusResult.ok,
|
|
129
|
+
message,
|
|
130
|
+
data = null,
|
|
131
|
+
count = null,
|
|
132
|
+
error = null,
|
|
133
|
+
redirectTo = undefined,
|
|
134
|
+
bodyWrap = true,
|
|
135
|
+
}: TResultIn) {
|
|
139
136
|
this.statusCode = statusCode;
|
|
140
137
|
this.statusResult = statusResult;
|
|
141
|
-
this.message = !message ?
|
|
138
|
+
this.message = !message ? "" : message;
|
|
142
139
|
this.count = count;
|
|
143
140
|
this.data = data;
|
|
144
141
|
this.error = error;
|
|
@@ -151,7 +148,12 @@ class Result {
|
|
|
151
148
|
* If use to AWS Appsync need response value without body wrap
|
|
152
149
|
*/
|
|
153
150
|
bodyToString(): ResponseVoAWS {
|
|
154
|
-
let _err =
|
|
151
|
+
let _err =
|
|
152
|
+
this.error && this.error.message
|
|
153
|
+
? this.error.message
|
|
154
|
+
: !this.error
|
|
155
|
+
? null
|
|
156
|
+
: JSON.stringify(this.error);
|
|
155
157
|
|
|
156
158
|
const valueBody: ResponseBodyVO = {
|
|
157
159
|
statusResult: this.statusResult,
|
|
@@ -171,7 +173,6 @@ class Result {
|
|
|
171
173
|
}
|
|
172
174
|
|
|
173
175
|
export class CreateResponse {
|
|
174
|
-
|
|
175
176
|
/**
|
|
176
177
|
* Success
|
|
177
178
|
* @param data
|
|
@@ -180,11 +181,11 @@ export class CreateResponse {
|
|
|
180
181
|
* @param bodyWrap
|
|
181
182
|
*/
|
|
182
183
|
static success({
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
data = null,
|
|
185
|
+
count = null,
|
|
186
|
+
message = "success",
|
|
187
|
+
bodyWrap = true,
|
|
188
|
+
}: TFuncParams): ResponseVoAWS {
|
|
188
189
|
const result = new Result({
|
|
189
190
|
statusCode: StatusCode.OK,
|
|
190
191
|
statusResult: StatusResult.ok,
|
|
@@ -203,10 +204,10 @@ export class CreateResponse {
|
|
|
203
204
|
* @param bodyWrap
|
|
204
205
|
*/
|
|
205
206
|
static created({
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
data,
|
|
208
|
+
message = "created",
|
|
209
|
+
bodyWrap = true,
|
|
210
|
+
}: TFuncParams): ResponseVoAWS {
|
|
210
211
|
const result = new Result({
|
|
211
212
|
statusCode: StatusCode.Created,
|
|
212
213
|
statusResult: StatusResult.ok,
|
|
@@ -224,10 +225,10 @@ export class CreateResponse {
|
|
|
224
225
|
* @param bodyWrap
|
|
225
226
|
*/
|
|
226
227
|
static updated({
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
228
|
+
data,
|
|
229
|
+
message = "updated",
|
|
230
|
+
bodyWrap = true,
|
|
231
|
+
}: TFuncParams): ResponseVoAWS {
|
|
231
232
|
const result = new Result({
|
|
232
233
|
statusCode: StatusCode.OK,
|
|
233
234
|
statusResult: StatusResult.ok,
|
|
@@ -245,10 +246,10 @@ export class CreateResponse {
|
|
|
245
246
|
* @param bodyWrap
|
|
246
247
|
*/
|
|
247
248
|
static updateOrCreate({
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
data,
|
|
250
|
+
message = "update_or_create",
|
|
251
|
+
bodyWrap = true,
|
|
252
|
+
}: TFuncParams): ResponseVoAWS {
|
|
252
253
|
const result = new Result({
|
|
253
254
|
statusCode: StatusCode.OK,
|
|
254
255
|
statusResult: StatusResult.ok,
|
|
@@ -266,10 +267,10 @@ export class CreateResponse {
|
|
|
266
267
|
* @param bodyWrap
|
|
267
268
|
*/
|
|
268
269
|
static notFound({
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
270
|
+
error = null,
|
|
271
|
+
message = "",
|
|
272
|
+
bodyWrap = true,
|
|
273
|
+
}: TFuncParams): ResponseVoAWS {
|
|
273
274
|
const result = new Result({
|
|
274
275
|
statusCode: StatusCode.NotFound,
|
|
275
276
|
statusResult: StatusResult.notFound,
|
|
@@ -289,11 +290,11 @@ export class CreateResponse {
|
|
|
289
290
|
* @param bodyWrap
|
|
290
291
|
*/
|
|
291
292
|
static error({
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
error = null,
|
|
294
|
+
statusCode = StatusCode.BadRequest,
|
|
295
|
+
message = "Error",
|
|
296
|
+
bodyWrap = true,
|
|
297
|
+
}: TFuncParams): ResponseVoAWS {
|
|
297
298
|
const result = new Result({
|
|
298
299
|
statusCode,
|
|
299
300
|
statusResult: StatusResult.error,
|
|
@@ -305,7 +306,6 @@ export class CreateResponse {
|
|
|
305
306
|
return result.bodyToString();
|
|
306
307
|
}
|
|
307
308
|
|
|
308
|
-
|
|
309
309
|
/**
|
|
310
310
|
* Unauthorized
|
|
311
311
|
* @param error
|
|
@@ -314,11 +314,11 @@ export class CreateResponse {
|
|
|
314
314
|
* @param bodyWrap
|
|
315
315
|
*/
|
|
316
316
|
static unauthorized({
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
317
|
+
error = null,
|
|
318
|
+
statusCode = StatusCode.Unauthorized,
|
|
319
|
+
message = "Unauthorized",
|
|
320
|
+
bodyWrap = true,
|
|
321
|
+
}: TFuncParams): ResponseVoAWS {
|
|
322
322
|
const result = new Result({
|
|
323
323
|
statusCode,
|
|
324
324
|
statusResult: StatusResult.unauthorized,
|
|
@@ -330,7 +330,6 @@ export class CreateResponse {
|
|
|
330
330
|
return result.bodyToString();
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
|
|
334
333
|
/**
|
|
335
334
|
* Redirect
|
|
336
335
|
* @param error
|
|
@@ -339,11 +338,11 @@ export class CreateResponse {
|
|
|
339
338
|
* @param bodyWrap
|
|
340
339
|
*/
|
|
341
340
|
static redirect({
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
341
|
+
statusCode = StatusCode.MovedTemporarily,
|
|
342
|
+
message = "",
|
|
343
|
+
bodyWrap = true,
|
|
344
|
+
redirectTo = "",
|
|
345
|
+
}: TFuncParams): ResponseVoAWS {
|
|
347
346
|
const result = new Result({
|
|
348
347
|
statusCode,
|
|
349
348
|
statusResult: StatusResult.needRedirect,
|
|
@@ -367,14 +366,14 @@ export class CreateResponse {
|
|
|
367
366
|
* @param bodyWrap
|
|
368
367
|
*/
|
|
369
368
|
static custom({
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
369
|
+
statusCode = StatusCode.OK,
|
|
370
|
+
statusResult = StatusResult.ok,
|
|
371
|
+
message = "",
|
|
372
|
+
error = null,
|
|
373
|
+
data = null,
|
|
374
|
+
count = null,
|
|
375
|
+
bodyWrap = true,
|
|
376
|
+
}: TFuncParams): ResponseVoAWS {
|
|
378
377
|
const result = new Result({
|
|
379
378
|
statusCode,
|
|
380
379
|
statusResult,
|
|
@@ -388,7 +387,7 @@ export class CreateResponse {
|
|
|
388
387
|
}
|
|
389
388
|
}
|
|
390
389
|
|
|
391
|
-
export const messagesREST = (prefix: string, suffix: string =
|
|
390
|
+
export const messagesREST = (prefix: string, suffix: string = "") => {
|
|
392
391
|
return {
|
|
393
392
|
TOTAL: `${prefix}_TOTAL${suffix}`,
|
|
394
393
|
|
|
@@ -400,6 +399,10 @@ export const messagesREST = (prefix: string, suffix: string = '') => {
|
|
|
400
399
|
UNAUTHORISED: `${prefix}_UNAUTHORISED${suffix}`,
|
|
401
400
|
ERROR_AUTHORISED: `${prefix}_ERROR_AUTHORISED${suffix}`,
|
|
402
401
|
|
|
402
|
+
EXIST: `${prefix}_EXIST${suffix}`,
|
|
403
|
+
NOT_EXIST: `${prefix}_NOT_EXIST${suffix}`,
|
|
404
|
+
ERROR_EXIST: `${prefix}_ERROR_EXIST${suffix}`,
|
|
405
|
+
|
|
403
406
|
IDENTIFIER: `${prefix}_IDENTIFIER${suffix}`,
|
|
404
407
|
NOT_IDENTIFIER: `${prefix}_NOT_IDENTIFIER${suffix}`,
|
|
405
408
|
ERROR_IDENTIFIER: `${prefix}_ERROR_IDENTIFIER${suffix}`,
|
|
@@ -498,9 +501,9 @@ export const messagesREST = (prefix: string, suffix: string = '') => {
|
|
|
498
501
|
};
|
|
499
502
|
};
|
|
500
503
|
|
|
501
|
-
export const optionsPaginationParams = [
|
|
504
|
+
export const optionsPaginationParams = ["limit", "skip", "count"];
|
|
502
505
|
|
|
503
|
-
export type TMongoFilterNormalise = { [fieldName: string]: any }
|
|
506
|
+
export type TMongoFilterNormalise = { [fieldName: string]: any };
|
|
504
507
|
|
|
505
508
|
/**
|
|
506
509
|
* Normalise filter for mongoose
|
|
@@ -508,18 +511,32 @@ export type TMongoFilterNormalise = { [fieldName: string]: any }
|
|
|
508
511
|
* @param filter
|
|
509
512
|
* @param excludeFields
|
|
510
513
|
*/
|
|
511
|
-
export const normaliseMongoFilter = (
|
|
514
|
+
export const normaliseMongoFilter = (
|
|
515
|
+
filter: TMongoFilterNormalise,
|
|
516
|
+
regexFields: string[],
|
|
517
|
+
excludeFields?: string[]
|
|
518
|
+
) => {
|
|
512
519
|
const _filter: TMongoFilterNormalise = {};
|
|
513
|
-
const excludeParams =
|
|
514
|
-
|
|
520
|
+
const excludeParams =
|
|
521
|
+
excludeFields && Array.isArray(excludeFields) && excludeFields.length > 0
|
|
522
|
+
? excludeFields
|
|
523
|
+
: optionsPaginationParams;
|
|
515
524
|
|
|
516
525
|
Object.keys(filter).forEach((f) => {
|
|
517
526
|
const v = filter[f];
|
|
518
|
-
if (
|
|
519
|
-
|
|
527
|
+
if (
|
|
528
|
+
!(
|
|
529
|
+
v === null ||
|
|
530
|
+
(typeof v === "number" && isNaN(v)) ||
|
|
531
|
+
v === Infinity ||
|
|
532
|
+
v === undefined ||
|
|
533
|
+
excludeParams.includes(f)
|
|
534
|
+
)
|
|
535
|
+
) {
|
|
520
536
|
_filter[f] = filter[f];
|
|
521
537
|
|
|
522
|
-
if (regexFields.includes(f))
|
|
538
|
+
if (regexFields.includes(f))
|
|
539
|
+
_filter[f] = { $regex: new RegExp(_filter[f], "gi") };
|
|
523
540
|
}
|
|
524
541
|
});
|
|
525
542
|
|
|
@@ -531,11 +548,36 @@ export interface TMongoPaginate {
|
|
|
531
548
|
limit: number;
|
|
532
549
|
}
|
|
533
550
|
|
|
551
|
+
export type TFieldsGQL =
|
|
552
|
+
| "create"
|
|
553
|
+
| "count"
|
|
554
|
+
|
|
555
|
+
| "find"
|
|
556
|
+
| "findOne"
|
|
557
|
+
| "findMany"
|
|
558
|
+
|
|
559
|
+
| "findOneByID"
|
|
560
|
+
| "findManyByIDs"
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
| "update"
|
|
564
|
+
| "updateOneByID"
|
|
565
|
+
| "updateManyByIDs"
|
|
566
|
+
|
|
567
|
+
| "deleteOne"
|
|
568
|
+
| "deleteOneByID"
|
|
569
|
+
| "deleteManyByIDs"
|
|
570
|
+
|
|
571
|
+
| "actionMark"
|
|
572
|
+
| "init";
|
|
573
|
+
|
|
534
574
|
/**
|
|
535
575
|
* Normalise Mongo Paginate params
|
|
536
576
|
* @param filter
|
|
537
577
|
*/
|
|
538
|
-
export const normaliseMongoPaginate = (
|
|
578
|
+
export const normaliseMongoPaginate = (
|
|
579
|
+
filter: TMongoFilterNormalise
|
|
580
|
+
): TMongoPaginate => {
|
|
539
581
|
let res: TMongoPaginate = {
|
|
540
582
|
skip: 0,
|
|
541
583
|
limit: 50,
|
|
@@ -547,11 +589,22 @@ export const normaliseMongoPaginate = (filter: TMongoFilterNormalise): TMongoPag
|
|
|
547
589
|
return res;
|
|
548
590
|
};
|
|
549
591
|
|
|
550
|
-
export const controlResponseNull = (
|
|
592
|
+
export const controlResponseNull = (
|
|
593
|
+
data: object,
|
|
594
|
+
okResultOf:
|
|
595
|
+
| "create"
|
|
596
|
+
| "update"
|
|
597
|
+
| "update_or_create"
|
|
598
|
+
| "update_many"
|
|
599
|
+
| "increment"
|
|
600
|
+
| "decrement",
|
|
601
|
+
prefix: string,
|
|
602
|
+
bodyWrap: boolean = true
|
|
603
|
+
) => {
|
|
551
604
|
let result;
|
|
552
605
|
|
|
553
606
|
if (data) {
|
|
554
|
-
if (okResultOf ===
|
|
607
|
+
if (okResultOf === "create") {
|
|
555
608
|
result = CreateResponse.created({
|
|
556
609
|
data,
|
|
557
610
|
message: messagesREST(prefix).CREATE,
|
|
@@ -559,7 +612,7 @@ export const controlResponseNull = (data: object, okResultOf: 'create' | 'update
|
|
|
559
612
|
});
|
|
560
613
|
}
|
|
561
614
|
|
|
562
|
-
if (okResultOf ===
|
|
615
|
+
if (okResultOf === "update") {
|
|
563
616
|
result = CreateResponse.updated({
|
|
564
617
|
data,
|
|
565
618
|
message: messagesREST(prefix).UPDATE,
|
|
@@ -567,7 +620,7 @@ export const controlResponseNull = (data: object, okResultOf: 'create' | 'update
|
|
|
567
620
|
});
|
|
568
621
|
}
|
|
569
622
|
|
|
570
|
-
if (okResultOf ===
|
|
623
|
+
if (okResultOf === "update_or_create") {
|
|
571
624
|
result = CreateResponse.updateOrCreate({
|
|
572
625
|
data,
|
|
573
626
|
message: messagesREST(prefix).UPDATE_OR_CREATE,
|
|
@@ -575,7 +628,7 @@ export const controlResponseNull = (data: object, okResultOf: 'create' | 'update
|
|
|
575
628
|
});
|
|
576
629
|
}
|
|
577
630
|
|
|
578
|
-
if (okResultOf ===
|
|
631
|
+
if (okResultOf === "update_many") {
|
|
579
632
|
result = CreateResponse.updated({
|
|
580
633
|
data,
|
|
581
634
|
message: messagesREST(prefix).UPDATE_MANY,
|
|
@@ -583,7 +636,7 @@ export const controlResponseNull = (data: object, okResultOf: 'create' | 'update
|
|
|
583
636
|
});
|
|
584
637
|
}
|
|
585
638
|
|
|
586
|
-
if (okResultOf ===
|
|
639
|
+
if (okResultOf === "increment") {
|
|
587
640
|
result = CreateResponse.updated({
|
|
588
641
|
data,
|
|
589
642
|
message: messagesREST(prefix).INCREMENT,
|
|
@@ -591,22 +644,25 @@ export const controlResponseNull = (data: object, okResultOf: 'create' | 'update
|
|
|
591
644
|
});
|
|
592
645
|
}
|
|
593
646
|
|
|
594
|
-
if (okResultOf ===
|
|
647
|
+
if (okResultOf === "decrement") {
|
|
595
648
|
result = CreateResponse.updated({
|
|
596
649
|
data,
|
|
597
650
|
message: messagesREST(prefix).DECREMENT,
|
|
598
651
|
bodyWrap,
|
|
599
652
|
});
|
|
600
653
|
}
|
|
601
|
-
|
|
602
654
|
} else {
|
|
603
|
-
let messageErr =
|
|
604
|
-
if (okResultOf ===
|
|
605
|
-
if (okResultOf ===
|
|
606
|
-
if (okResultOf ===
|
|
607
|
-
|
|
608
|
-
if (okResultOf ===
|
|
609
|
-
|
|
655
|
+
let messageErr = "";
|
|
656
|
+
if (okResultOf === "create") messageErr = messagesREST(prefix).NOT_CREATE;
|
|
657
|
+
if (okResultOf === "update") messageErr = messagesREST(prefix).NOT_UPDATE;
|
|
658
|
+
if (okResultOf === "update_or_create")
|
|
659
|
+
messageErr = messagesREST(prefix).NOT_UPDATE_OR_CREATE;
|
|
660
|
+
if (okResultOf === "update_many")
|
|
661
|
+
messageErr = messagesREST(prefix).NOT_UPDATE_MANY;
|
|
662
|
+
if (okResultOf === "increment")
|
|
663
|
+
messageErr = messagesREST(prefix).NOT_INCREMENT;
|
|
664
|
+
if (okResultOf === "decrement")
|
|
665
|
+
messageErr = messagesREST(prefix).NOT_DECREMENT;
|
|
610
666
|
|
|
611
667
|
result = CreateResponse.error({
|
|
612
668
|
data: data,
|
package/package.json
CHANGED