ismx-nexo-node-app 0.4.31 → 0.4.33

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.
@@ -71,6 +71,12 @@ class ServiceRestFormalTemplate {
71
71
  let pageNumber = Number.parseInt(pageNumberStr);
72
72
  return { maxResults, pageNumber };
73
73
  }
74
+ /**
75
+ * Handles GET requests by retrieving a single record from the database based on the provided request.
76
+ *
77
+ * @param {HttpRequest} request - The HTTP request object containing the necessary parameters to process the request.
78
+ * @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the retrieved model data.
79
+ */
74
80
  serveGet(request) {
75
81
  return __awaiter(this, void 0, void 0, function* () {
76
82
  let id = this.getFormalId(request);
@@ -78,11 +84,24 @@ class ServiceRestFormalTemplate {
78
84
  return Service_1.HttpResponse.ok(result);
79
85
  });
80
86
  }
87
+ /**
88
+ * Handles GET requests to retrieve a list of models from the database.
89
+ *
90
+ * @param {HttpRequest} request - The request object containing query parameters for filtering the results.
91
+ * @return {Promise<HttpResponse<Model[]>>} A promise that resolves to an HTTP response containing an array of models.
92
+ */
81
93
  serveGetList(request) {
82
94
  return __awaiter(this, void 0, void 0, function* () {
83
95
  return Service_1.HttpResponse.ok(yield this.database.find(this.tableName, Object.assign({}, request.query)));
84
96
  });
85
97
  }
98
+ /**
99
+ * Handles a GET request to retrieve a key-value mapping from the database table.
100
+ * Groups data based on provided key and value parameters, and returns a flattened keymap object.
101
+ *
102
+ * @param {HttpRequest} request - The HTTP request containing parameters for the keymap query.
103
+ * @return {Promise<HttpResponse<{ [key:string]:any }>>} A promise resolving to an HTTP response containing the key-value mapping.
104
+ */
86
105
  serveGetKeymap(request) {
87
106
  return __awaiter(this, void 0, void 0, function* () {
88
107
  var _a, _b, _c, _d;
@@ -124,11 +143,21 @@ class ServiceRestFormalTemplate {
124
143
  throw new Error();
125
144
  });
126
145
  }
146
+ /**
147
+ * @deprecated override 'serveGet' for retrieving full entity of database.
148
+ * @param request
149
+ * @protected
150
+ */
127
151
  serveFull(request) {
128
152
  return __awaiter(this, void 0, void 0, function* () {
129
153
  return this.serveGet(request);
130
154
  });
131
155
  }
156
+ /**
157
+ * @deprecated override 'serveGetList' for retrieving full entitiy list of database.
158
+ * @param request
159
+ * @protected
160
+ */
132
161
  serveFullList(request) {
133
162
  return __awaiter(this, void 0, void 0, function* () {
134
163
  let list = yield this.unwrap(this.getList.serve(request));
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -7,17 +16,24 @@ const Business_1 = __importDefault(require("./Business"));
7
16
  class BusinessThread extends Business_1.default {
8
17
  constructor() {
9
18
  super();
10
- setTimeout(() => {
11
- setInterval(() => {
19
+ }
20
+ init() {
21
+ var _a, _b;
22
+ this.timeoutId = setTimeout(() => {
23
+ this.intervalId = setInterval(() => __awaiter(this, void 0, void 0, function* () {
12
24
  try {
13
- this.run();
25
+ yield this.run();
14
26
  }
15
27
  catch (err) {
16
- this.onError();
28
+ this.onError(err);
17
29
  }
18
- }, this.interval());
19
- }, this.delay());
30
+ }), this.interval());
31
+ }, (_b = (_a = this.delay) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : 0);
32
+ }
33
+ terminate() {
34
+ clearInterval(this.intervalId);
35
+ clearTimeout(this.timeoutId);
20
36
  }
21
- onError() { }
37
+ onError(err) { }
22
38
  }
23
39
  exports.default = BusinessThread;
@@ -36,8 +36,27 @@ export default class ServiceRestFormalTemplate<Model = any> {
36
36
  maxResults: number;
37
37
  pageNumber: number;
38
38
  };
39
+ /**
40
+ * Handles GET requests by retrieving a single record from the database based on the provided request.
41
+ *
42
+ * @param {HttpRequest} request - The HTTP request object containing the necessary parameters to process the request.
43
+ * @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the retrieved model data.
44
+ */
39
45
  protected serveGet(request: HttpRequest): Promise<HttpResponse<Model>>;
46
+ /**
47
+ * Handles GET requests to retrieve a list of models from the database.
48
+ *
49
+ * @param {HttpRequest} request - The request object containing query parameters for filtering the results.
50
+ * @return {Promise<HttpResponse<Model[]>>} A promise that resolves to an HTTP response containing an array of models.
51
+ */
40
52
  protected serveGetList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
53
+ /**
54
+ * Handles a GET request to retrieve a key-value mapping from the database table.
55
+ * Groups data based on provided key and value parameters, and returns a flattened keymap object.
56
+ *
57
+ * @param {HttpRequest} request - The HTTP request containing parameters for the keymap query.
58
+ * @return {Promise<HttpResponse<{ [key:string]:any }>>} A promise resolving to an HTTP response containing the key-value mapping.
59
+ */
41
60
  protected serveGetKeymap(request: HttpRequest): Promise<HttpResponse<{
42
61
  [key: string]: any;
43
62
  }>>;
@@ -49,7 +68,17 @@ export default class ServiceRestFormalTemplate<Model = any> {
49
68
  }>): Promise<HttpResponse<{
50
69
  [key: string]: any;
51
70
  }>>;
71
+ /**
72
+ * @deprecated override 'serveGet' for retrieving full entity of database.
73
+ * @param request
74
+ * @protected
75
+ */
52
76
  protected serveFull(request: HttpRequest): Promise<HttpResponse<Model>>;
77
+ /**
78
+ * @deprecated override 'serveGetList' for retrieving full entitiy list of database.
79
+ * @param request
80
+ * @protected
81
+ */
53
82
  protected serveFullList(request: HttpRequest): Promise<HttpResponse<Model[]>>;
54
83
  protected servePage(request: HttpRequest): Promise<HttpResponse<Pagination<Model>>>;
55
84
  protected serveMap(request: HttpRequest): Promise<HttpResponse<{
@@ -1,8 +1,12 @@
1
1
  import Business from "./Business";
2
2
  export default abstract class BusinessThread extends Business {
3
+ private intervalId?;
4
+ private timeoutId?;
3
5
  constructor();
4
- abstract run(): void;
6
+ init(): void;
7
+ terminate(): void;
8
+ abstract run(): Promise<void>;
5
9
  abstract interval(): number;
6
- abstract delay(): number;
7
- onError(): void;
10
+ abstract delay?(): number;
11
+ onError(err: Error): void;
8
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ismx-nexo-node-app",
3
- "version": "0.4.31",
3
+ "version": "0.4.33",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "rm -rf ./dist && npx tsc",
@@ -84,16 +84,35 @@ export default class ServiceRestFormalTemplate<Model=any>
84
84
  return { maxResults, pageNumber }
85
85
  }
86
86
 
87
+ /**
88
+ * Handles GET requests by retrieving a single record from the database based on the provided request.
89
+ *
90
+ * @param {HttpRequest} request - The HTTP request object containing the necessary parameters to process the request.
91
+ * @return {Promise<HttpResponse<Model>>} A promise that resolves to an HTTP response containing the retrieved model data.
92
+ */
87
93
  protected async serveGet(request: HttpRequest): Promise<HttpResponse<Model>> {
88
94
  let id = this.getFormalId(request);
89
95
  let result = await this.database.one<Model>(this.tableName, id);
90
96
  return HttpResponse.ok(result);
91
97
  }
92
98
 
99
+ /**
100
+ * Handles GET requests to retrieve a list of models from the database.
101
+ *
102
+ * @param {HttpRequest} request - The request object containing query parameters for filtering the results.
103
+ * @return {Promise<HttpResponse<Model[]>>} A promise that resolves to an HTTP response containing an array of models.
104
+ */
93
105
  protected async serveGetList(request: HttpRequest): Promise<HttpResponse<Model[]>> {
94
106
  return HttpResponse.ok(await this.database.find<Model>(this.tableName, { ...request.query }));
95
107
  }
96
108
 
109
+ /**
110
+ * Handles a GET request to retrieve a key-value mapping from the database table.
111
+ * Groups data based on provided key and value parameters, and returns a flattened keymap object.
112
+ *
113
+ * @param {HttpRequest} request - The HTTP request containing parameters for the keymap query.
114
+ * @return {Promise<HttpResponse<{ [key:string]:any }>>} A promise resolving to an HTTP response containing the key-value mapping.
115
+ */
97
116
  protected async serveGetKeymap(request: HttpRequest): Promise<HttpResponse<{ [key:string]:any }>> {
98
117
  let key = request.query?.["_key"] ?? this.indexer;
99
118
  let value = request.query?.["_value"] ?? "value";
@@ -126,10 +145,20 @@ export default class ServiceRestFormalTemplate<Model=any>
126
145
  throw new Error();
127
146
  }
128
147
 
148
+ /**
149
+ * @deprecated override 'serveGet' for retrieving full entity of database.
150
+ * @param request
151
+ * @protected
152
+ */
129
153
  protected async serveFull(request: HttpRequest): Promise<HttpResponse<Model>> {
130
154
  return this.serveGet(request);
131
155
  }
132
156
 
157
+ /**
158
+ * @deprecated override 'serveGetList' for retrieving full entitiy list of database.
159
+ * @param request
160
+ * @protected
161
+ */
133
162
  protected async serveFullList(request: HttpRequest): Promise<HttpResponse<Model[]>>
134
163
  {
135
164
  let list = await this.unwrap(this.getList.serve(request));
@@ -2,18 +2,29 @@ import Business from "./Business";
2
2
 
3
3
  export default abstract class BusinessThread extends Business
4
4
  {
5
+ private intervalId?: NodeJS.Timeout;
6
+ private timeoutId?: NodeJS.Timeout;
7
+
5
8
  constructor() {
6
9
  super();
7
- setTimeout(() => {
8
- setInterval(() => {
9
- try { this.run() }
10
- catch (err) { this.onError() }
10
+ }
11
+
12
+ init() {
13
+ this.timeoutId = setTimeout(() => {
14
+ this.intervalId = setInterval(async () => {
15
+ try { await this.run() }
16
+ catch (err) { this.onError(err as Error) }
11
17
  }, this.interval());
12
- }, this.delay())
18
+ }, this.delay?.() ?? 0);
19
+ }
20
+
21
+ terminate() {
22
+ clearInterval(this.intervalId);
23
+ clearTimeout(this.timeoutId);
13
24
  }
14
25
 
15
- abstract run(): void
26
+ abstract run(): Promise<void>
16
27
  abstract interval(): number
17
- abstract delay(): number
18
- onError() {}
28
+ abstract delay?(): number
29
+ onError(err: Error) {}
19
30
  }