eh-commons 0.0.1-testing.21 → 0.0.1-testing.22

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.
@@ -7,6 +7,10 @@ export declare class RESTSort {
7
7
  property: string;
8
8
  direction: SortDirection;
9
9
  }
10
+ export interface IMongoPage {
11
+ skip: number;
12
+ limit: number;
13
+ }
10
14
  export declare class RESTPaging {
11
15
  page: number;
12
16
  size: number;
@@ -14,6 +18,7 @@ export declare class RESTPaging {
14
18
  skip: number;
15
19
  limit: number;
16
20
  };
21
+ static generate(page: number, size: number): IMongoPage;
17
22
  }
18
23
  export declare abstract class RESTRequestBody {
19
24
  abstract data: any;
@@ -44,7 +49,7 @@ export declare class RESTError {
44
49
  debug?: any;
45
50
  validation?: any;
46
51
  statusCode?: HttpStatus;
47
- constructor(keyword: string, debug?: any);
52
+ constructor(keyword: string, debug?: any, statusCode?: HttpStatus);
48
53
  static throw(keyword: string, statusCode?: HttpStatus, debug?: any): void;
49
54
  static dataValidation(validation: any): RESTError;
50
55
  }
@@ -56,3 +61,8 @@ export declare class RESTResponseBody<T> {
56
61
  static success<T>(data: T, page?: RESTPage, sort?: RESTSort[]): RESTResponseBody<T>;
57
62
  static fail(errors: RESTError[], statusCode?: number): RESTResponseBody<any>;
58
63
  }
64
+ export declare class RESTQueryParams extends RESTPaging {
65
+ sort: string[];
66
+ getRESTSort(): RESTSort[];
67
+ extractSort(): {};
68
+ }
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RESTResponseBody = exports.RESTError = exports.RESTResult = exports.RESTPage = exports.RESTRequestBody = exports.RESTPaging = exports.RESTSort = exports.SortDirection = void 0;
12
+ exports.RESTQueryParams = exports.RESTResponseBody = exports.RESTError = exports.RESTResult = exports.RESTPage = exports.RESTRequestBody = exports.RESTPaging = exports.RESTSort = exports.SortDirection = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const class_validator_1 = require("class-validator");
@@ -37,16 +37,25 @@ class RESTPaging {
37
37
  const skip = (this.page - 1) * this.size;
38
38
  return { skip, limit: this.size };
39
39
  }
40
+ static generate(page, size) {
41
+ const skip = (page - 1) * size;
42
+ return { skip, limit: size };
43
+ }
40
44
  }
41
45
  exports.RESTPaging = RESTPaging;
42
46
  __decorate([
43
47
  (0, class_validator_1.IsNotEmpty)(),
44
- (0, class_validator_1.IsNumber)(),
48
+ (0, class_validator_1.IsInt)(),
49
+ (0, class_transformer_1.Type)(() => Number),
50
+ (0, class_validator_1.Min)(1),
45
51
  __metadata("design:type", Number)
46
52
  ], RESTPaging.prototype, "page", void 0);
47
53
  __decorate([
48
54
  (0, class_validator_1.IsNotEmpty)(),
49
- (0, class_validator_1.IsNumber)(),
55
+ (0, class_validator_1.IsInt)(),
56
+ (0, class_transformer_1.Type)(() => Number),
57
+ (0, class_validator_1.Min)(1),
58
+ (0, class_validator_1.Max)(100),
50
59
  __metadata("design:type", Number)
51
60
  ], RESTPaging.prototype, "size", void 0);
52
61
  class RESTRequestBody {
@@ -119,9 +128,10 @@ class RESTResult {
119
128
  }
120
129
  exports.RESTResult = RESTResult;
121
130
  class RESTError {
122
- constructor(keyword, debug) {
131
+ constructor(keyword, debug, statusCode) {
123
132
  this.keyword = keyword;
124
133
  this.debug = debug;
134
+ this.statusCode = statusCode;
125
135
  }
126
136
  static throw(keyword, statusCode, debug) {
127
137
  const error = new RESTError(keyword, debug);
@@ -129,7 +139,7 @@ class RESTError {
129
139
  throw error;
130
140
  }
131
141
  static dataValidation(validation) {
132
- const error = new RESTError('body_validation_error', null);
142
+ const error = new RESTError('body_validation_error', null, 422);
133
143
  error.validation = validation;
134
144
  return error;
135
145
  }
@@ -159,4 +169,46 @@ class RESTResponseBody {
159
169
  }
160
170
  }
161
171
  exports.RESTResponseBody = RESTResponseBody;
172
+ class RESTQueryParams extends RESTPaging {
173
+ getRESTSort() {
174
+ const result = [];
175
+ const items = [];
176
+ if (this.sort) {
177
+ if (this.sort instanceof Array) {
178
+ items.push(...this.sort);
179
+ }
180
+ else {
181
+ items.push(this.sort);
182
+ }
183
+ }
184
+ for (let item of items) {
185
+ const pair = item.split(':');
186
+ if (pair.length != 2) {
187
+ throw new RESTError('invalid_sorting_pair', pair, 422);
188
+ }
189
+ if (['asc', 'desc'].indexOf(pair[1]) === -1) {
190
+ throw new RESTError('invalid_sorting_direction', pair[1], 422);
191
+ }
192
+ result.push({
193
+ property: pair[0],
194
+ direction: pair[1] === 'asc' ? 1 : -1,
195
+ });
196
+ }
197
+ return result;
198
+ }
199
+ extractSort() {
200
+ const sorts = this.getRESTSort();
201
+ const result = {};
202
+ for (let item of sorts) {
203
+ result[item.property] = item.direction;
204
+ }
205
+ return result;
206
+ }
207
+ }
208
+ exports.RESTQueryParams = RESTQueryParams;
209
+ __decorate([
210
+ (0, class_validator_1.IsOptional)(),
211
+ (0, class_validator_1.IsString)({ each: true }),
212
+ __metadata("design:type", Array)
213
+ ], RESTQueryParams.prototype, "sort", void 0);
162
214
  //# sourceMappingURL=rest-wrapper.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest-wrapper.class.js","sourceRoot":"","sources":["../../../src/models/wrappers/rest-wrapper.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest-wrapper.class.js","sourceRoot":"","sources":["../../../src/models/wrappers/rest-wrapper.class.ts"],"names":[],"mappings":"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"}