@futdevpro/nts-dynamo 1.3.62 → 1.3.64

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.
Files changed (194) hide show
  1. package/lib/_constants/dynamobe-global.settings.d.ts +3 -0
  2. package/lib/_constants/dynamobe-global.settings.d.ts.map +1 -0
  3. package/lib/_constants/dynamobe-global.settings.js +12 -0
  4. package/lib/_constants/dynamobe-global.settings.js.map +1 -0
  5. package/lib/_enums/data-model-type.enum.d.ts +6 -0
  6. package/lib/_enums/data-model-type.enum.d.ts.map +1 -0
  7. package/lib/_enums/data-model-type.enum.js +10 -0
  8. package/lib/_enums/data-model-type.enum.js.map +1 -0
  9. package/lib/_enums/dynamobe-data-service-function.enum.d.ts +8 -0
  10. package/lib/_enums/dynamobe-data-service-function.enum.d.ts.map +1 -0
  11. package/lib/_enums/dynamobe-data-service-function.enum.js +15 -0
  12. package/lib/_enums/dynamobe-data-service-function.enum.js.map +1 -0
  13. package/lib/_enums/dynamobe-route-security.enum.d.ts +6 -0
  14. package/lib/_enums/dynamobe-route-security.enum.d.ts.map +1 -0
  15. package/lib/_enums/dynamobe-route-security.enum.js +10 -0
  16. package/lib/_enums/dynamobe-route-security.enum.js.map +1 -0
  17. package/lib/_enums/http/http-call-type.enum.d.ts +8 -0
  18. package/lib/_enums/http/http-call-type.enum.d.ts.map +1 -0
  19. package/lib/_enums/http/http-call-type.enum.js +12 -0
  20. package/lib/_enums/http/http-call-type.enum.js.map +1 -0
  21. package/lib/_enums/http/http-response-type.enum.d.ts +7 -0
  22. package/lib/_enums/http/http-response-type.enum.d.ts.map +1 -0
  23. package/lib/_enums/http/http-response-type.enum.js +11 -0
  24. package/lib/_enums/http/http-response-type.enum.js.map +1 -0
  25. package/lib/_enums/index.d.ts +8 -0
  26. package/lib/_enums/index.d.ts.map +1 -0
  27. package/lib/_enums/index.js +39 -0
  28. package/lib/_enums/index.js.map +1 -0
  29. package/lib/_enums/log-style.enum.d.ts +26 -0
  30. package/lib/_enums/log-style.enum.d.ts.map +1 -0
  31. package/lib/_enums/log-style.enum.js +30 -0
  32. package/lib/_enums/log-style.enum.js.map +1 -0
  33. package/lib/_enums/predefined-data-types.enum.d.ts +8 -0
  34. package/lib/_enums/predefined-data-types.enum.d.ts.map +1 -0
  35. package/lib/_enums/predefined-data-types.enum.js +12 -0
  36. package/lib/_enums/predefined-data-types.enum.js.map +1 -0
  37. package/lib/_models/dynamobe-api-call-params.d.ts +35 -0
  38. package/lib/_models/dynamobe-api-call-params.d.ts.map +1 -0
  39. package/lib/_models/dynamobe-api-call-params.js +24 -0
  40. package/lib/_models/dynamobe-api-call-params.js.map +1 -0
  41. package/lib/_models/dynamobe-app-params.d.ts +15 -0
  42. package/lib/_models/dynamobe-app-params.d.ts.map +1 -0
  43. package/lib/_models/dynamobe-app-params.js +14 -0
  44. package/lib/_models/dynamobe-app-params.js.map +1 -0
  45. package/lib/_models/dynamobe-data-model-params.d.ts +13 -0
  46. package/lib/_models/dynamobe-data-model-params.d.ts.map +1 -0
  47. package/lib/_models/dynamobe-data-model-params.js +15 -0
  48. package/lib/_models/dynamobe-data-model-params.js.map +1 -0
  49. package/lib/_models/dynamobe-endpoint-control.d.ts +30 -0
  50. package/lib/_models/dynamobe-endpoint-control.d.ts.map +1 -0
  51. package/lib/_models/dynamobe-endpoint-control.js +95 -0
  52. package/lib/_models/dynamobe-endpoint-control.js.map +1 -0
  53. package/lib/_models/dynamobe-global-settings.d.ts +9 -0
  54. package/lib/_models/dynamobe-global-settings.d.ts.map +1 -0
  55. package/lib/_models/dynamobe-global-settings.js +3 -0
  56. package/lib/_models/dynamobe-global-settings.js.map +1 -0
  57. package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts +18 -0
  58. package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts.map +1 -0
  59. package/lib/_models/fullstack-models/control-models/daily-usage-data.js +22 -0
  60. package/lib/_models/fullstack-models/control-models/daily-usage-data.js.map +1 -0
  61. package/lib/_models/fullstack-models/control-models/dynamobe-data-params.d.ts +11 -0
  62. package/lib/_models/fullstack-models/control-models/dynamobe-data-params.d.ts.map +1 -0
  63. package/lib/_models/fullstack-models/control-models/dynamobe-data-params.js +12 -0
  64. package/lib/_models/fullstack-models/control-models/dynamobe-data-params.js.map +1 -0
  65. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts +28 -0
  66. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts.map +1 -0
  67. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.js +67 -0
  68. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.js.map +1 -0
  69. package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts +18 -0
  70. package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts.map +1 -0
  71. package/lib/_models/fullstack-models/control-models/dynamobe-error.js +188 -0
  72. package/lib/_models/fullstack-models/control-models/dynamobe-error.js.map +1 -0
  73. package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts +26 -0
  74. package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts.map +1 -0
  75. package/lib/_models/fullstack-models/control-models/geo-ip-location.js +3 -0
  76. package/lib/_models/fullstack-models/control-models/geo-ip-location.js.map +1 -0
  77. package/lib/_models/fullstack-models/control-models/usage-action.d.ts +9 -0
  78. package/lib/_models/fullstack-models/control-models/usage-action.d.ts.map +1 -0
  79. package/lib/_models/fullstack-models/control-models/usage-action.js +13 -0
  80. package/lib/_models/fullstack-models/control-models/usage-action.js.map +1 -0
  81. package/lib/_models/fullstack-models/control-models/usage-data.d.ts +14 -0
  82. package/lib/_models/fullstack-models/control-models/usage-data.d.ts.map +1 -0
  83. package/lib/_models/fullstack-models/control-models/usage-data.js +16 -0
  84. package/lib/_models/fullstack-models/control-models/usage-data.js.map +1 -0
  85. package/lib/_models/fullstack-models/data-models/custom-data.d.ts +16 -0
  86. package/lib/_models/fullstack-models/data-models/custom-data.d.ts.map +1 -0
  87. package/lib/_models/fullstack-models/data-models/custom-data.js +28 -0
  88. package/lib/_models/fullstack-models/data-models/custom-data.js.map +1 -0
  89. package/lib/_models/fullstack-models/data-models/metadata.d.ts +17 -0
  90. package/lib/_models/fullstack-models/data-models/metadata.d.ts.map +1 -0
  91. package/lib/_models/fullstack-models/data-models/metadata.js +17 -0
  92. package/lib/_models/fullstack-models/data-models/metadata.js.map +1 -0
  93. package/lib/_models/fullstack-models/data-models/usage-session.d.ts +34 -0
  94. package/lib/_models/fullstack-models/data-models/usage-session.d.ts.map +1 -0
  95. package/lib/_models/fullstack-models/data-models/usage-session.js +53 -0
  96. package/lib/_models/fullstack-models/data-models/usage-session.js.map +1 -0
  97. package/lib/_models/index.d.ts +16 -0
  98. package/lib/_models/index.d.ts.map +1 -0
  99. package/lib/_models/index.js +33 -0
  100. package/lib/_models/index.js.map +1 -0
  101. package/lib/_modules/index.d.ts +5 -0
  102. package/lib/_modules/index.d.ts.map +1 -0
  103. package/lib/_modules/index.js +9 -0
  104. package/lib/_modules/index.js.map +1 -0
  105. package/lib/_modules/test-route/custom-data.service.d.ts +6 -0
  106. package/lib/_modules/test-route/custom-data.service.d.ts.map +1 -0
  107. package/lib/_modules/test-route/custom-data.service.js +12 -0
  108. package/lib/_modules/test-route/custom-data.service.js.map +1 -0
  109. package/lib/_modules/test-route/test-controller.d.ts +6 -0
  110. package/lib/_modules/test-route/test-controller.d.ts.map +1 -0
  111. package/lib/_modules/test-route/test-controller.js +126 -0
  112. package/lib/_modules/test-route/test-controller.js.map +1 -0
  113. package/lib/_modules/usage-route/usage-controller.d.ts +7 -0
  114. package/lib/_modules/usage-route/usage-controller.d.ts.map +1 -0
  115. package/lib/_modules/usage-route/usage-controller.js +89 -0
  116. package/lib/_modules/usage-route/usage-controller.js.map +1 -0
  117. package/lib/_modules/usage-route/usage.service.d.ts +19 -0
  118. package/lib/_modules/usage-route/usage.service.d.ts.map +1 -0
  119. package/lib/_modules/usage-route/usage.service.js +110 -0
  120. package/lib/_modules/usage-route/usage.service.js.map +1 -0
  121. package/lib/_services/dynamobe-api.service.d.ts +10 -0
  122. package/lib/_services/dynamobe-api.service.d.ts.map +1 -0
  123. package/lib/_services/dynamobe-api.service.js +131 -0
  124. package/lib/_services/dynamobe-api.service.js.map +1 -0
  125. package/lib/_services/dynamobe-app.d.ts +105 -0
  126. package/lib/_services/dynamobe-app.d.ts.map +1 -0
  127. package/lib/_services/dynamobe-app.js +212 -0
  128. package/lib/_services/dynamobe-app.js.map +1 -0
  129. package/lib/_services/dynamobe-auth.service.d.ts +41 -0
  130. package/lib/_services/dynamobe-auth.service.d.ts.map +1 -0
  131. package/lib/_services/dynamobe-auth.service.js +40 -0
  132. package/lib/_services/dynamobe-auth.service.js.map +1 -0
  133. package/lib/_services/dynamobe-controller.service.d.ts +11 -0
  134. package/lib/_services/dynamobe-controller.service.d.ts.map +1 -0
  135. package/lib/_services/dynamobe-controller.service.js +18 -0
  136. package/lib/_services/dynamobe-controller.service.js.map +1 -0
  137. package/lib/_services/dynamobe-data.service.d.ts +52 -0
  138. package/lib/_services/dynamobe-data.service.d.ts.map +1 -0
  139. package/lib/_services/dynamobe-data.service.js +222 -0
  140. package/lib/_services/dynamobe-data.service.js.map +1 -0
  141. package/lib/_services/dynamobe-db-service-collection.service.d.ts +6 -0
  142. package/lib/_services/dynamobe-db-service-collection.service.d.ts.map +1 -0
  143. package/lib/_services/dynamobe-db-service-collection.service.js +8 -0
  144. package/lib/_services/dynamobe-db-service-collection.service.js.map +1 -0
  145. package/lib/_services/dynamobe-db.service.d.ts +150 -0
  146. package/lib/_services/dynamobe-db.service.d.ts.map +1 -0
  147. package/lib/_services/dynamobe-db.service.js +577 -0
  148. package/lib/_services/dynamobe-db.service.js.map +1 -0
  149. package/lib/_services/dynamobe-email-service-collection.service.d.ts +19 -0
  150. package/lib/_services/dynamobe-email-service-collection.service.d.ts.map +1 -0
  151. package/lib/_services/dynamobe-email-service-collection.service.js +21 -0
  152. package/lib/_services/dynamobe-email-service-collection.service.js.map +1 -0
  153. package/lib/_services/dynamobe-email.service.d.ts +34 -0
  154. package/lib/_services/dynamobe-email.service.d.ts.map +1 -0
  155. package/lib/_services/dynamobe-email.service.js +145 -0
  156. package/lib/_services/dynamobe-email.service.js.map +1 -0
  157. package/lib/_services/dynamobe-global-collection.service.d.ts +1 -0
  158. package/lib/_services/dynamobe-global-collection.service.d.ts.map +1 -0
  159. package/lib/_services/dynamobe-global-collection.service.js +58 -0
  160. package/lib/_services/dynamobe-global-collection.service.js.map +1 -0
  161. package/lib/_services/dynamobe-global.service.d.ts +45 -0
  162. package/lib/_services/dynamobe-global.service.d.ts.map +1 -0
  163. package/lib/_services/dynamobe-global.service.js +116 -0
  164. package/lib/_services/dynamobe-global.service.js.map +1 -0
  165. package/lib/_services/dynamobe-routing-module.service.d.ts +26 -0
  166. package/lib/_services/dynamobe-routing-module.service.d.ts.map +1 -0
  167. package/lib/_services/dynamobe-routing-module.service.js +119 -0
  168. package/lib/_services/dynamobe-routing-module.service.js.map +1 -0
  169. package/lib/_services/dynamobe-server.d.ts +32 -0
  170. package/lib/_services/dynamobe-server.d.ts.map +1 -0
  171. package/lib/_services/dynamobe-server.js +183 -0
  172. package/lib/_services/dynamobe-server.js.map +1 -0
  173. package/lib/_services/dynamobe-shared.service.d.ts +101 -0
  174. package/lib/_services/dynamobe-shared.service.d.ts.map +1 -0
  175. package/lib/_services/dynamobe-shared.service.js +295 -0
  176. package/lib/_services/dynamobe-shared.service.js.map +1 -0
  177. package/lib/_services/dynamobe-singleton.service.d.ts +6 -0
  178. package/lib/_services/dynamobe-singleton.service.d.ts.map +1 -0
  179. package/lib/_services/dynamobe-singleton.service.js +16 -0
  180. package/lib/_services/dynamobe-singleton.service.js.map +1 -0
  181. package/lib/_services/index.d.ts +15 -0
  182. package/lib/_services/index.d.ts.map +1 -0
  183. package/lib/_services/index.js +41 -0
  184. package/lib/_services/index.js.map +1 -0
  185. package/lib/dynamobe-global.settings.d.ts +3 -0
  186. package/lib/dynamobe-global.settings.d.ts.map +1 -0
  187. package/lib/dynamobe-global.settings.js +12 -0
  188. package/lib/dynamobe-global.settings.js.map +1 -0
  189. package/lib/index.d.ts +5 -0
  190. package/lib/index.d.ts.map +1 -0
  191. package/lib/index.js +12 -0
  192. package/lib/index.js.map +1 -0
  193. package/lib/tsconfig.tsbuildinfo +2160 -0
  194. package/package.json +19 -16
@@ -0,0 +1,577 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoBEDBService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose = tslib_1.__importStar(require("mongoose"));
6
+ const mongoose_1 = require("mongoose");
7
+ const dynamobe_error_1 = require("../_models/fullstack-models/control-models/dynamobe-error");
8
+ class DynamoBEDBService {
9
+ /**
10
+ * @param dataName name the model
11
+ * @param typeSample sample data for scheme creation (dont include Metadata!)
12
+ * @param schemaSettings additional settings for specific parameters as unique, required, minlength or maxlength
13
+ * schemaSettings also MUST contain specific types that differs from the listed above (Array, Date)
14
+ */
15
+ constructor(dataParams) {
16
+ this.dataParams = dataParams;
17
+ this.dataModel = mongoose.model(this.dataParams.dbName, this.getSchema());
18
+ this.lookForDependencyDataSettings();
19
+ }
20
+ /**
21
+ * save new data
22
+ * @param data data
23
+ * @returns data
24
+ */
25
+ createData(data, creator) {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ data.__created = new Date();
28
+ data.__lastModified = new Date();
29
+ data.__createdBy = creator;
30
+ data.__lastModifiedBy = creator;
31
+ const dataModel = new this.dataModel(data);
32
+ let newData;
33
+ yield dataModel.save().then(res => {
34
+ if (res) {
35
+ newData = res.toObject();
36
+ }
37
+ else {
38
+ throw new dynamobe_error_1.DynamoBEError({ status: 204, message: `${this.dataParams.dbName} not found! (BD)` });
39
+ }
40
+ }).catch(error => {
41
+ throw new dynamobe_error_1.DynamoBEError({ status: 422, message: `Create new ${this.dataParams.dbName} was unsuccessful (BD)`, error });
42
+ });
43
+ if (typeof newData._id === 'object') {
44
+ newData._id = `${newData._id}`;
45
+ }
46
+ data._id = newData._id;
47
+ data.__v = newData.__v;
48
+ return data;
49
+ });
50
+ }
51
+ /**
52
+ * Find data by _id and update
53
+ * @param data data
54
+ * @returns data
55
+ */
56
+ modifyData(data, modifier) {
57
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
58
+ data.__lastModified = new Date();
59
+ data.__lastModifiedBy = modifier;
60
+ const dataModel = new this.dataModel(data);
61
+ let newData;
62
+ yield this.dataModel.findByIdAndUpdate(data._id, dataModel).then(res => {
63
+ if (res) {
64
+ newData = res.toObject();
65
+ }
66
+ else {
67
+ throw new dynamobe_error_1.DynamoBEError({ status: 204, message: `${this.dataParams.dbName} not found! (BD)` });
68
+ }
69
+ }).catch(error => {
70
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `modify ${this.dataParams.dbName} was unsuccessful (DB)`, error });
71
+ });
72
+ data.__v = newData.__v;
73
+ return data;
74
+ });
75
+ }
76
+ /**
77
+ * get data by _id, throws error if not found
78
+ * @param id id
79
+ * @returns data
80
+ */
81
+ getDataById(id) {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
+ let data;
84
+ yield this.dataModel.findById(id).then(res => {
85
+ if (res) {
86
+ data = res.toObject();
87
+ }
88
+ else {
89
+ data = null;
90
+ }
91
+ }).catch(error => {
92
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `get ${this.dataParams.dbName} by ID was unsuccessful (DB)`, error });
93
+ });
94
+ if (data && typeof data._id === 'object') {
95
+ data._id = `${data._id}`;
96
+ }
97
+ return data;
98
+ });
99
+ }
100
+ /**
101
+ * get data by dependency data id, throws error if not found
102
+ * @param dependencyId id
103
+ * @returns data
104
+ */
105
+ getDataByDependencyId(dependencyId) {
106
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
107
+ if (this.depDataName) {
108
+ let data;
109
+ yield this.dataModel.findOne({ [this.depDataName]: dependencyId }).then(res => {
110
+ if (res) {
111
+ data = res.toObject();
112
+ }
113
+ else {
114
+ data = null;
115
+ }
116
+ }).catch(error => {
117
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (DB)`, error });
118
+ });
119
+ if (data && typeof data._id === 'object') {
120
+ data._id = `${data._id}`;
121
+ }
122
+ return data;
123
+ }
124
+ else {
125
+ throw new dynamobe_error_1.DynamoBEError({ status: 501, message: `dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (BD)` });
126
+ }
127
+ });
128
+ }
129
+ /**
130
+ * get data by dependency data id, throws error if not found
131
+ * @param dependencyId id
132
+ * @returns dataList
133
+ */
134
+ getDataListByDependencyId(dependencyId) {
135
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
136
+ if (this.depDataName) {
137
+ let dataList = [];
138
+ yield this.dataModel.find({ [this.depDataName]: dependencyId }).then(res => {
139
+ if (res) {
140
+ dataList = res;
141
+ }
142
+ }).catch(error => {
143
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (DB)`, error });
144
+ });
145
+ if (0 < dataList.length && typeof dataList[0]._id === 'object') {
146
+ dataList.forEach((data) => {
147
+ data._id = `˙${data._id}`;
148
+ });
149
+ }
150
+ return dataList;
151
+ }
152
+ else {
153
+ throw new dynamobe_error_1.DynamoBEError({ status: 501, message: `dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (BD)` });
154
+ }
155
+ });
156
+ }
157
+ /**
158
+ * get multiple data objects by a list of DependencyIDs, throws error if not found
159
+ * @param ids ids
160
+ * @returns dataList
161
+ */
162
+ getDataListByDependencyIds(ids) {
163
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
164
+ if (this.depDataName) {
165
+ let dataList = [];
166
+ yield this.dataModel.find({ [this.depDataName]: { $in: ids } }).then(res => {
167
+ if (res) {
168
+ dataList = res;
169
+ }
170
+ }).catch(error => {
171
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `get ${this.dataParams.dbName}s by ${this.depDataName}s was unsuccessful (DB)`, error });
172
+ });
173
+ return dataList;
174
+ }
175
+ else {
176
+ throw new dynamobe_error_1.DynamoBEError({ status: 501, message: `dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (BD)` });
177
+ }
178
+ });
179
+ }
180
+ /**
181
+ * returns search result for searchBy object params
182
+ * can use lists or xRange values for searchBy obj properties
183
+ * @param searchBy filter
184
+ * @param narrowByDependencyIds id
185
+ * @returns dataList
186
+ */
187
+ searchData(searchBy, narrowByDependencyIds) {
188
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
189
+ const filter = {};
190
+ if (narrowByDependencyIds.length > 0) {
191
+ if (this.depDataName) {
192
+ filter[this.depDataName] = { $in: narrowByDependencyIds };
193
+ }
194
+ else {
195
+ throw new dynamobe_error_1.DynamoBEError({ status: 501, message: `dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (BD)` });
196
+ }
197
+ }
198
+ yield this.dataParams.modelParams.forEach((modelParam) => {
199
+ if ((searchBy[modelParam.key] !== null && searchBy[modelParam.key] !== undefined) || searchBy[modelParam.key + 'Range']) {
200
+ if (modelParam.key.includes('Range') || modelParam.type.includes('[]')) {
201
+ // inverz search filter (for Range and Array functions)
202
+ if (modelParam.key.includes('Range')) {
203
+ const searchParamKeyWithoutRange = modelParam.key.split('Range')[0];
204
+ if (searchBy[searchParamKeyWithoutRange] !== null && searchBy[searchParamKeyWithoutRange] !== undefined) {
205
+ filter[modelParam.key] = {
206
+ from: { $lte: searchBy[searchParamKeyWithoutRange] },
207
+ to: { $gte: searchBy[searchParamKeyWithoutRange] }
208
+ };
209
+ }
210
+ }
211
+ else {
212
+ if (searchBy[modelParam.key] !== null && searchBy[modelParam.key] !== undefined) {
213
+ filter[modelParam.key] = { $in: searchBy[modelParam.key] };
214
+ }
215
+ }
216
+ }
217
+ else {
218
+ // basic search filter
219
+ if (searchBy[modelParam.key + 'Range']) {
220
+ if (searchBy[modelParam.key + 'Range'].from || searchBy[modelParam.key + 'Range'].to) {
221
+ filter[modelParam.key] = {};
222
+ if (searchBy[modelParam.key + 'Range'].from) {
223
+ filter[modelParam.key].$gte = searchBy[modelParam.key + 'Range'].from;
224
+ }
225
+ if (searchBy[modelParam.key + 'Range'].to) {
226
+ filter[modelParam.key].$lte = searchBy[modelParam.key + 'Range'].to;
227
+ }
228
+ }
229
+ }
230
+ else if (searchBy[modelParam.key] !== null && searchBy[modelParam.key] !== undefined) {
231
+ if (searchBy[modelParam.key].lenght > 0) {
232
+ filter[modelParam.key] = { $in: searchBy[modelParam.key] };
233
+ }
234
+ }
235
+ }
236
+ }
237
+ });
238
+ let dataList = [];
239
+ yield this.dataModel.find(filter).then(res => {
240
+ if (res) {
241
+ dataList = res;
242
+ }
243
+ }).catch(error => {
244
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `search ${this.dataParams.dbName} was unsuccessful (DB)`, error });
245
+ });
246
+ if (0 < dataList.length && typeof dataList[0]._id === 'object') {
247
+ dataList.forEach((data) => {
248
+ data._id = `˙${data._id}`;
249
+ });
250
+ }
251
+ return dataList;
252
+ });
253
+ }
254
+ /**
255
+ * find data by any of its parameters, throws error if not found
256
+ * @param data etc.: by email: { email: email }
257
+ * { userIds: { $in: this.userId } }
258
+ * @returns data
259
+ */
260
+ findData(data) {
261
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
262
+ yield this.dataModel.findOne(data).then(res => {
263
+ if (res) {
264
+ data = res.toObject();
265
+ }
266
+ else {
267
+ data = null;
268
+ }
269
+ }).catch(error => {
270
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `find ${this.dataParams.dbName} was unsuccessful (DB)`, error });
271
+ });
272
+ if (data && typeof data._id === 'object') {
273
+ data._id = `${data._id}`;
274
+ }
275
+ return data;
276
+ });
277
+ }
278
+ /**
279
+ * returns all data from database, throws error if not found
280
+ * @returns dataList
281
+ */
282
+ getAll() {
283
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
284
+ let dataList = [];
285
+ yield this.dataModel.find({}).then(res => {
286
+ if (res) {
287
+ dataList = res;
288
+ }
289
+ }).catch(error => {
290
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `get all ${this.dataParams.dbName} was unsuccessful (DB)`, error });
291
+ });
292
+ if (0 < dataList.length && typeof dataList[0]._id === 'object') {
293
+ dataList.forEach((data) => {
294
+ data._id = `˙${data._id}`;
295
+ });
296
+ }
297
+ return dataList;
298
+ });
299
+ }
300
+ /**
301
+ * update one parameter by a specific
302
+ * { _id: pictureId }, { approved: true }
303
+ * @param updateBy etc.: { email: email } (always use unique parameters for find!)
304
+ * @param update etc.: { $inc: { popularity: this.newVote.amount }, emailVerified: true }
305
+ */
306
+ /* async updateOneParameter(updateBy: any, update: any, modifier: string): Promise<void> {
307
+ update.__lastModified = new Date();
308
+ update.__lastModifiedBy = modifier;
309
+ await this.dataModel.updateOne(updateBy, update).catch(error => {
310
+ throw new DynamoBEError({ status: 417, message: `update one parameter on ${this.dataParams.dbName} was unsuccessful (DB)`, error });
311
+ });
312
+ } */
313
+ /**
314
+ * deleted data by id
315
+ * @param id id
316
+ */
317
+ deleteDataById(id) {
318
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
319
+ yield this.dataModel.findByIdAndDelete(id).catch(error => {
320
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `delete ${this.dataParams.dbName} was unsuccessful (DB)`, error });
321
+ });
322
+ });
323
+ }
324
+ /**
325
+ * deleted data by id
326
+ * @param dependencyId id
327
+ */
328
+ deleteDataByDependencyId(dependencyId) {
329
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
330
+ if (this.depDataName) {
331
+ yield this.dataModel.deleteMany({ [this.depDataName]: dependencyId }).catch(error => {
332
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `delete ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (DB)`, error });
333
+ });
334
+ }
335
+ else {
336
+ throw new dynamobe_error_1.DynamoBEError({ status: 501, message: `dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (BD)` });
337
+ }
338
+ });
339
+ }
340
+ // ----------------------------------------------------------------------------------
341
+ // ----------------------------------------------------------------------------------
342
+ // ----------------------------------------------------------------------------------
343
+ // DIRECT MONGOOSE CALLS (with error handlings)
344
+ /**
345
+ * find the data first by any of its parameters, throws error if not found
346
+ * @param filter etc. by email: { email: email }
347
+ * @returns data
348
+ */
349
+ findOne(filter) {
350
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
351
+ let data;
352
+ yield this.dataModel.findOne(filter).then(res => {
353
+ if (res) {
354
+ data = res.toObject();
355
+ }
356
+ else {
357
+ data = null;
358
+ }
359
+ }).catch(error => {
360
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `findOne ${this.dataParams.dbName} was unsuccessful (DB)`, error });
361
+ });
362
+ if (data && typeof data._id === 'object') {
363
+ data._id = `${data._id}`;
364
+ }
365
+ return data;
366
+ });
367
+ }
368
+ /**
369
+ * find all data by any of its parameters, throws error if not found
370
+ * @param filter etc. by email: { email: email, points: { $gte: 2, $lte: 12 }, userIds: { $in: this.userId } }
371
+ * @returns dataList
372
+ */
373
+ find(filter) {
374
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
375
+ let dataList = [];
376
+ yield this.dataModel.find(filter).then(res => {
377
+ if (res) {
378
+ dataList = res;
379
+ }
380
+ }).catch(error => {
381
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `find ${this.dataParams.dbName} was unsuccessful (DB)`, error });
382
+ });
383
+ if (0 < dataList.length && typeof dataList[0]._id === 'object') {
384
+ dataList.forEach((data) => {
385
+ data._id = `˙${data._id}`;
386
+ });
387
+ }
388
+ return dataList;
389
+ });
390
+ }
391
+ /**
392
+ * find all data by any of its parameters, throws error if not found
393
+ * @param filter etc. by email: { email: email, points: { $gte: 2, $lte: 12 }, userIds: { $in: this.userId } }
394
+ * @param page page
395
+ * @param pageSize pageSize
396
+ * @param sort etc. by dateTime: { dateTime: -1 }
397
+ * @returns dataList
398
+ */
399
+ findWithPaging(filter, page, pageSize, sort) {
400
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
401
+ let dataList = [];
402
+ yield this.dataModel.find(filter)
403
+ .sort(sort)
404
+ .skip(page * pageSize)
405
+ .limit(pageSize)
406
+ .then(res => {
407
+ if (res) {
408
+ dataList = res;
409
+ }
410
+ }).catch(error => {
411
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `findWithPaging ${this.dataParams.dbName} was unsuccessful (DB)`, error });
412
+ });
413
+ if (0 < dataList.length && typeof dataList[0]._id === 'object') {
414
+ dataList.forEach((data) => {
415
+ data._id = `˙${data._id}`;
416
+ });
417
+ }
418
+ return dataList;
419
+ });
420
+ }
421
+ /**
422
+ * Find data by _id and update
423
+ * @param id id
424
+ * @param update update
425
+ * @returns data
426
+ */
427
+ findByIdAndUpdate(id, update, modifier) {
428
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
429
+ let data;
430
+ update.__lastModified = new Date();
431
+ update.__lastModifiedBy = modifier;
432
+ yield this.dataModel.findByIdAndUpdate(id, update).then(res => {
433
+ if (res) {
434
+ data = res.toObject();
435
+ }
436
+ else {
437
+ throw new dynamobe_error_1.DynamoBEError({ status: 204, message: `${this.dataParams.dbName} not found! (BD)` });
438
+ }
439
+ }).catch(error => {
440
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `findByIdAndUpdate ${this.dataParams.dbName} was unsuccessful (DB)`, error });
441
+ });
442
+ update.__v = data.__v;
443
+ return update;
444
+ });
445
+ }
446
+ /**
447
+ * update one parameter by a specific
448
+ * @param updateBy etc.: by email: { email: email, points: { $gte: 2, $lte: 12 }, userIds: { $in: this.userId } } (always use unique parameters for find!)
449
+ * @param update etc.: { $inc: { popularity: this.newVote.amount }, emailVerified: true }
450
+ */
451
+ updateOne(updateBy, update, modifier) {
452
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
453
+ update.__lastModified = new Date();
454
+ update.__lastModifiedBy = modifier;
455
+ yield this.dataModel.updateOne(updateBy, update).catch(error => {
456
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `updateOne ${this.dataParams.dbName} was unsuccessful (DB)`, error });
457
+ });
458
+ });
459
+ }
460
+ /**
461
+ * update one parameter by a specific
462
+ * @param updateBy etc.: by email: { email: email, points: { $gte: 2, $lte: 12 }, userIds: { $in: this.userId } } (always use unique parameters for find!)
463
+ * @param update etc.: { $inc: { popularity: this.newVote.amount }, emailVerified: true, reactions: { $push: this.newReaction } }
464
+ */
465
+ updateMany(updateBy, update, modifier) {
466
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
467
+ update.__lastModified = new Date();
468
+ update.__lastModifiedBy = modifier;
469
+ yield this.dataModel.updateMany(updateBy, update).catch(error => {
470
+ throw new dynamobe_error_1.DynamoBEError({ status: 417, message: `updateMany ${this.dataParams.dbName} was unsuccessful (DB)`, error });
471
+ });
472
+ });
473
+ }
474
+ // ----------------------------------------------------------------------------------
475
+ // ----------------------------------------------------------------------------------
476
+ // ----------------------------------------------------------------------------------
477
+ // PRIVATE BUILD FUNCTIONS
478
+ /**
479
+ * builds and returns mongoose schema
480
+ * @returns schema
481
+ */
482
+ getSchema() {
483
+ let schema = this.buildMongooseSchemaByModelParams();
484
+ schema = this.addMetadataToSchema(schema);
485
+ // tslint:disable-next-line: no-string-literal
486
+ if (schema['_id']) {
487
+ // tslint:disable-next-line: no-string-literal
488
+ delete schema['_id'];
489
+ }
490
+ return new mongoose_1.Schema(schema);
491
+ }
492
+ /**
493
+ * builds mongoose schema building settings object by dynamoDataModelParamsList
494
+ * @param params DynamoBEDataPropertyParams
495
+ * @returns mongoose schema object
496
+ */
497
+ buildMongooseSchemaByModelParams(params) {
498
+ const schemaSettingsObj = {};
499
+ if (!params) {
500
+ params = this.dataParams.modelParams;
501
+ }
502
+ params.forEach((property) => {
503
+ const beType = this.getBEType(property.type);
504
+ if (beType !== Object || !property.subObjectParams) {
505
+ schemaSettingsObj[property.key] = {
506
+ type: beType
507
+ };
508
+ if (property.index) {
509
+ schemaSettingsObj[property.key].index = true;
510
+ }
511
+ if (property.unique) {
512
+ schemaSettingsObj[property.key].unique = true;
513
+ }
514
+ if (property.required) {
515
+ schemaSettingsObj[property.key].required = true;
516
+ }
517
+ if (property.minlength) {
518
+ schemaSettingsObj[property.key].minlength = property.minlength;
519
+ }
520
+ if (property.maxlength) {
521
+ schemaSettingsObj[property.key].maxlength = property.maxlength;
522
+ }
523
+ }
524
+ else {
525
+ schemaSettingsObj[property.key] = this.buildMongooseSchemaByModelParams(property.subObjectParams);
526
+ }
527
+ });
528
+ return schemaSettingsObj;
529
+ }
530
+ getBEType(type) {
531
+ switch (type) {
532
+ case 'string':
533
+ return String;
534
+ case 'number':
535
+ return Number;
536
+ case 'boolean':
537
+ return Boolean;
538
+ case 'Date':
539
+ return Date;
540
+ case 'object':
541
+ return Object;
542
+ default:
543
+ if (type.includes('[]')) {
544
+ return Array;
545
+ }
546
+ else if (type.includes('=>') || type.includes('function')) {
547
+ return Function;
548
+ }
549
+ else {
550
+ return Object;
551
+ }
552
+ }
553
+ }
554
+ /**
555
+ * adds dynamo metadata settings to any mongoose schema building settings object
556
+ * @param schema schema to update
557
+ * @returns updated schema
558
+ */
559
+ addMetadataToSchema(schema) {
560
+ schema.__created = { type: Date };
561
+ schema.__createdBy = { type: String };
562
+ schema.__lastModified = { type: Date };
563
+ schema.__lastModifiedBy = { type: String };
564
+ return schema;
565
+ }
566
+ /**
567
+ * sets depDataKey
568
+ */
569
+ lookForDependencyDataSettings() {
570
+ const dependencyParam = this.dataParams.modelParams.find((modelParams) => modelParams.isDependencyHook);
571
+ if (dependencyParam) {
572
+ this.depDataName = dependencyParam.key;
573
+ }
574
+ }
575
+ }
576
+ exports.DynamoBEDBService = DynamoBEDBService;
577
+ //# sourceMappingURL=dynamobe-db.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamobe-db.service.js","sourceRoot":"","sources":["../../src/_services/dynamobe-db.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { DynamoBEEmailService } from './dynamobe-email.service';
2
+ import { DynamoBESingletonService } from './dynamobe-singleton.service';
3
+ /**
4
+ * Extend this class as an Email Service Collection implementation
5
+ *
6
+ * You should use singleton instance getting function by implementing a
7
+ * static getInstance() function
8
+ * @example
9
+ * export class EmailServiceCollectionService extends DynamoBEEmailServiceCollection {
10
+ *
11
+ * static getInstance(): EmailServiceCollectionService {
12
+ * return EmailServiceCollectionService.getSingletonInstance();
13
+ * }
14
+ * ...
15
+ */
16
+ export declare class DynamoBEEmailServiceCollection extends DynamoBESingletonService {
17
+ [service: string]: DynamoBEEmailService;
18
+ }
19
+ //# sourceMappingURL=dynamobe-email-service-collection.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamobe-email-service-collection.service.d.ts","sourceRoot":"","sources":["../../src/_services/dynamobe-email-service-collection.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,qBAAa,8BAA+B,SAAQ,wBAAwB;IAE1E,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAEzC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoBEEmailServiceCollection = void 0;
4
+ const dynamobe_singleton_service_1 = require("./dynamobe-singleton.service");
5
+ /**
6
+ * Extend this class as an Email Service Collection implementation
7
+ *
8
+ * You should use singleton instance getting function by implementing a
9
+ * static getInstance() function
10
+ * @example
11
+ * export class EmailServiceCollectionService extends DynamoBEEmailServiceCollection {
12
+ *
13
+ * static getInstance(): EmailServiceCollectionService {
14
+ * return EmailServiceCollectionService.getSingletonInstance();
15
+ * }
16
+ * ...
17
+ */
18
+ class DynamoBEEmailServiceCollection extends dynamobe_singleton_service_1.DynamoBESingletonService {
19
+ }
20
+ exports.DynamoBEEmailServiceCollection = DynamoBEEmailServiceCollection;
21
+ //# sourceMappingURL=dynamobe-email-service-collection.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamobe-email-service-collection.service.js","sourceRoot":"","sources":["../../src/_services/dynamobe-email-service-collection.service.ts"],"names":[],"mappings":";;;AAEA,6EAAwE;AAExE;;;;;;;;;;;;GAYG;AACH,MAAa,8BAA+B,SAAQ,qDAAwB;CAI3E;AAJD,wEAIC"}