@knovator/pagecreator-node 1.2.0 → 1.2.2

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 (128) hide show
  1. package/package.json +4 -2
  2. package/src/constants/index.d.ts +20 -0
  3. package/src/constants/index.js +34 -0
  4. package/src/constants/index.js.map +1 -0
  5. package/src/controllers/PageController.d.ts +4 -0
  6. package/src/controllers/PageController.js +84 -0
  7. package/src/controllers/PageController.js.map +1 -0
  8. package/src/controllers/TabController.d.ts +4 -0
  9. package/src/controllers/TabController.js +46 -0
  10. package/src/controllers/TabController.js.map +1 -0
  11. package/src/controllers/UserController.d.ts +2 -0
  12. package/src/controllers/UserController.js +65 -0
  13. package/src/controllers/UserController.js.map +1 -0
  14. package/src/controllers/WidgetController.d.ts +10 -0
  15. package/src/controllers/WidgetController.js +329 -0
  16. package/src/controllers/WidgetController.js.map +1 -0
  17. package/src/index.d.ts +8 -0
  18. package/src/index.js +48 -0
  19. package/src/index.js.map +1 -0
  20. package/src/models/Item.d.ts +30 -0
  21. package/src/models/Item.js +50 -0
  22. package/src/models/Item.js.map +1 -0
  23. package/src/models/Page.d.ts +30 -0
  24. package/src/models/Page.js +23 -0
  25. package/src/models/Page.js.map +1 -0
  26. package/src/models/SrcSet.d.ts +30 -0
  27. package/src/models/SrcSet.js +17 -0
  28. package/src/models/SrcSet.js.map +1 -0
  29. package/src/models/Tab.d.ts +30 -0
  30. package/src/models/Tab.js +28 -0
  31. package/src/models/Tab.js.map +1 -0
  32. package/src/models/Widget.d.ts +30 -0
  33. package/src/models/Widget.js +63 -0
  34. package/src/models/Widget.js.map +1 -0
  35. package/src/models/{index.ts → index.d.ts} +1 -13
  36. package/src/models/index.js +19 -0
  37. package/src/models/index.js.map +1 -0
  38. package/src/plugins/softDelete.d.ts +7 -0
  39. package/src/plugins/softDelete.js +64 -0
  40. package/src/plugins/softDelete.js.map +1 -0
  41. package/src/routes/PageRoute.d.ts +3 -0
  42. package/src/routes/PageRoute.js +30 -0
  43. package/src/routes/PageRoute.js.map +1 -0
  44. package/src/routes/UserRoute.d.ts +3 -0
  45. package/src/routes/UserRoute.js +23 -0
  46. package/src/routes/UserRoute.js.map +1 -0
  47. package/src/routes/WidgetRoute.d.ts +3 -0
  48. package/src/routes/WidgetRoute.js +68 -0
  49. package/src/routes/WidgetRoute.js.map +1 -0
  50. package/src/services/dataService.d.ts +9 -0
  51. package/src/services/dataService.js +403 -0
  52. package/src/services/dataService.js.map +1 -0
  53. package/src/services/dbService.d.ts +16 -0
  54. package/src/services/dbService.js +88 -0
  55. package/src/services/dbService.js.map +1 -0
  56. package/src/types/{IRequest.ts → IRequest.d.ts} +3 -4
  57. package/src/types/IRequest.js +3 -0
  58. package/src/types/IRequest.js.map +1 -0
  59. package/src/types/{IResponse.ts → IResponse.d.ts} +3 -4
  60. package/src/types/IResponse.js +3 -0
  61. package/src/types/IResponse.js.map +1 -0
  62. package/src/types/{Router.ts → Router.d.ts} +1 -2
  63. package/src/types/Router.js +3 -0
  64. package/src/types/Router.js.map +1 -0
  65. package/src/types/common.d.ts +142 -0
  66. package/src/types/common.js +3 -0
  67. package/src/types/common.js.map +1 -0
  68. package/src/types/enums.d.ts +14 -0
  69. package/src/types/enums.js +21 -0
  70. package/src/types/enums.js.map +1 -0
  71. package/src/types/index.js +9 -0
  72. package/src/types/index.js.map +1 -0
  73. package/src/utils/defaults.d.ts +7 -0
  74. package/src/utils/defaults.js +41 -0
  75. package/src/utils/defaults.js.map +1 -0
  76. package/src/utils/helper.d.ts +7 -0
  77. package/src/utils/helper.js +225 -0
  78. package/src/utils/helper.js.map +1 -0
  79. package/src/utils/redis.d.ts +3 -0
  80. package/src/utils/redis.js +59 -0
  81. package/src/utils/redis.js.map +1 -0
  82. package/src/utils/responseHandlers.d.ts +6 -0
  83. package/src/utils/responseHandlers.js +57 -0
  84. package/src/utils/responseHandlers.js.map +1 -0
  85. package/src/utils/validate.d.ts +4 -0
  86. package/src/utils/validate.js +24 -0
  87. package/src/utils/validate.js.map +1 -0
  88. package/src/utils/validations/page.d.ts +7 -0
  89. package/src/utils/validations/page.js +51 -0
  90. package/src/utils/validations/page.js.map +1 -0
  91. package/src/utils/validations/tab.d.ts +6 -0
  92. package/src/utils/validations/tab.js +26 -0
  93. package/src/utils/validations/tab.js.map +1 -0
  94. package/src/utils/validations/user.d.ts +3 -0
  95. package/src/utils/validations/user.js +13 -0
  96. package/src/utils/validations/user.js.map +1 -0
  97. package/src/utils/validations/widget.d.ts +9 -0
  98. package/src/utils/validations/widget.js +153 -0
  99. package/src/utils/validations/widget.js.map +1 -0
  100. package/src/constants/index.ts +0 -30
  101. package/src/controllers/PageController.ts +0 -88
  102. package/src/controllers/TabController.ts +0 -47
  103. package/src/controllers/UserController.ts +0 -69
  104. package/src/controllers/WidgetController.ts +0 -420
  105. package/src/index.ts +0 -59
  106. package/src/models/Item.ts +0 -53
  107. package/src/models/Page.ts +0 -22
  108. package/src/models/SrcSet.ts +0 -16
  109. package/src/models/Tab.ts +0 -28
  110. package/src/models/Widget.ts +0 -65
  111. package/src/plugins/softDelete.ts +0 -84
  112. package/src/routes/PageRoute.ts +0 -30
  113. package/src/routes/UserRoute.ts +0 -32
  114. package/src/routes/WidgetRoute.ts +0 -77
  115. package/src/services/dataService.ts +0 -475
  116. package/src/services/dbService.ts +0 -102
  117. package/src/types/common.ts +0 -172
  118. package/src/types/enums.ts +0 -16
  119. package/src/utils/defaults.ts +0 -41
  120. package/src/utils/helper.ts +0 -285
  121. package/src/utils/redis.ts +0 -57
  122. package/src/utils/responseHandlers.ts +0 -60
  123. package/src/utils/validate.ts +0 -22
  124. package/src/utils/validations/page.ts +0 -52
  125. package/src/utils/validations/tab.ts +0 -26
  126. package/src/utils/validations/user.ts +0 -10
  127. package/src/utils/validations/widget.ts +0 -169
  128. /package/src/types/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,3 @@
1
+ import { IRouter } from '../types';
2
+ declare const routes: IRouter;
3
+ export default routes;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const express_1 = tslib_1.__importDefault(require("express"));
5
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
6
+ require('express-list-endpoints-descriptor')(express_1.default);
7
+ const validate_1 = tslib_1.__importDefault(require("../utils/validate"));
8
+ const userValidation = tslib_1.__importStar(require("../utils/validations/user"));
9
+ const userController = tslib_1.__importStar(require("../controllers/UserController"));
10
+ const descriptorPrefix = process.env['PAGECREATOR_DESCRIPTOR_PREFIX'] || '';
11
+ const routes = express_1.default.Router();
12
+ routes.use(express_1.default.json());
13
+ // Item Routes
14
+ // Get Widget Data
15
+ routes
16
+ .post(`/widget-data`, (0, validate_1.default)(userValidation.getWidgetData), userController.getWidgetData)
17
+ .descriptor(`${descriptorPrefix}user.getWidgetData`);
18
+ // Get Page Data
19
+ routes
20
+ .post('/page-data', (0, validate_1.default)(userValidation.getPageData), userController.getPageData)
21
+ .descriptor(`${descriptorPrefix}user.getPageData`);
22
+ exports.default = routes;
23
+ //# sourceMappingURL=UserRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserRoute.js","sourceRoot":"","sources":["../../../../../libs/node/src/routes/UserRoute.ts"],"names":[],"mappings":";;;AAAA,8DAA8B;AAC9B,8DAA8D;AAC9D,OAAO,CAAC,mCAAmC,CAAC,CAAC,iBAAO,CAAC,CAAC;AAGtD,yEAAyC;AACzC,kFAA4D;AAC5D,sFAAgE;AAEhE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC;AAC5E,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAa,CAAC;AAC3C,MAAM,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAE3B,cAAc;AACd,kBAAkB;AAClB,MAAM;KACH,IAAI,CACH,cAAc,EACd,IAAA,kBAAQ,EAAC,cAAc,CAAC,aAAa,CAAC,EACtC,cAAc,CAAC,aAAa,CAC7B;KACA,UAAU,CAAC,GAAG,gBAAgB,oBAAoB,CAAC,CAAC;AACvD,gBAAgB;AAChB,MAAM;KACH,IAAI,CACH,YAAY,EACZ,IAAA,kBAAQ,EAAC,cAAc,CAAC,WAAW,CAAC,EACpC,cAAc,CAAC,WAAW,CAC3B;KACA,UAAU,CAAC,GAAG,gBAAgB,kBAAkB,CAAC,CAAC;AAErD,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IRouter } from '../types';
2
+ declare const routes: IRouter;
3
+ export default routes;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const express_1 = tslib_1.__importDefault(require("express"));
5
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
6
+ require('express-list-endpoints-descriptor')(express_1.default);
7
+ const validate_1 = tslib_1.__importDefault(require("../utils/validate"));
8
+ const tabValidation = tslib_1.__importStar(require("../utils/validations/tab"));
9
+ const widgetValidation = tslib_1.__importStar(require("../utils/validations/widget"));
10
+ const widgetController = tslib_1.__importStar(require("../controllers/WidgetController"));
11
+ const tabController = tslib_1.__importStar(require("../controllers/TabController"));
12
+ const descriptorPrefix = process.env['PAGECREATOR_DESCRIPTOR_PREFIX'] || '';
13
+ const routes = express_1.default.Router();
14
+ routes.use(express_1.default.json());
15
+ // Widget Routes
16
+ // Get widget types
17
+ routes
18
+ .get('/widget-types', widgetController.getItemsTypes)
19
+ .descriptor(`${descriptorPrefix}widget.getItemsTypes`);
20
+ // Get widget selection types
21
+ routes
22
+ .get('/selection-types', widgetController.getWidgetTypes)
23
+ .descriptor(`${descriptorPrefix}widget.getWidgetTypes`);
24
+ // Get all widgets
25
+ routes
26
+ .post(`/list`, (0, validate_1.default)(widgetValidation.list), widgetController.getWidgets)
27
+ .descriptor(`${descriptorPrefix}widget.getAll`);
28
+ // Create a widget
29
+ routes
30
+ .post(`/`, (0, validate_1.default)(widgetValidation.create), widgetController.createWidget)
31
+ .descriptor(`${descriptorPrefix}widget.create`);
32
+ // Update a widget
33
+ routes
34
+ .put(`/:id`, (0, validate_1.default)(widgetValidation.update), widgetController.updateWidget)
35
+ .descriptor(`${descriptorPrefix}widget.update`);
36
+ // Partial Update a widget
37
+ routes
38
+ .patch(`/:id`, (0, validate_1.default)(widgetValidation.partialUpdate), widgetController.partialUpdateWidget)
39
+ .descriptor(`${descriptorPrefix}widget.partialUpdate`);
40
+ // Delete a widget
41
+ routes
42
+ .delete(`/:id`, widgetController.deleteWidget)
43
+ .descriptor(`${descriptorPrefix}widget.delete`);
44
+ // Get dynamic collection data
45
+ routes
46
+ .post('/collection-data', (0, validate_1.default)(widgetValidation.getCollectionData), widgetController.getCollectionData)
47
+ .descriptor(`${descriptorPrefix}widget.getCollectionData`);
48
+ // Tabs
49
+ routes
50
+ .post('/tabs', (0, validate_1.default)(tabValidation.create), tabController.createTab)
51
+ .descriptor(`${descriptorPrefix}tab.create`);
52
+ routes
53
+ .put('/tabs/:tabId', (0, validate_1.default)(tabValidation.update), tabController.updateTab)
54
+ .descriptor(`${descriptorPrefix}tab.update`);
55
+ routes
56
+ .delete('/tabs/:tabId', tabController.deleteTab)
57
+ .descriptor(`${descriptorPrefix}tab.delete`);
58
+ routes
59
+ .get('/tabs/:widgetId', tabController.getTabs)
60
+ .descriptor(`${descriptorPrefix}tab.getAll`);
61
+ // Get all languages
62
+ routes.get(`/languages`, widgetController.getLanguages);
63
+ // Get single widget
64
+ routes
65
+ .get(`/:id`, widgetController.getSingleWidget)
66
+ .descriptor(`${descriptorPrefix}widget.getOne`);
67
+ exports.default = routes;
68
+ //# sourceMappingURL=WidgetRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetRoute.js","sourceRoot":"","sources":["../../../../../libs/node/src/routes/WidgetRoute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Models } from 'mongoose';
2
+ import { IWidgetSchema } from '../types';
3
+ export declare const getWidgetDataDB: (code: string, models: Models) => Promise<IWidgetSchema | null>;
4
+ export declare const updateRedisWidget: (code: string, models: Models) => Promise<void>;
5
+ export declare const updateWidgetPagesData: (widgetIds: string[], models: Models) => Promise<void>;
6
+ export declare const getPageDataDB: (code: string, models: Models) => Promise<any>;
7
+ export declare const updateRedisPage: (code: string, models: Models) => Promise<void>;
8
+ export declare const handleUpdateData: (collectionName: string, itemId: string | string[], models: Models) => Promise<void>;
9
+ export declare const handleResetData: (type: 'widget' | 'page', code: string) => void;
@@ -0,0 +1,403 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleResetData = exports.handleUpdateData = exports.updateRedisPage = exports.getPageDataDB = exports.updateWidgetPagesData = exports.updateRedisWidget = exports.getWidgetDataDB = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const helper_1 = require("../utils/helper");
6
+ const redis_1 = require("../utils/redis");
7
+ const defaults_1 = require("../utils/defaults");
8
+ const getAggregationQuery = ({ collectionName, ids, }) => {
9
+ const collectionConfig = defaults_1.defaults.collections.find((c) => c.collectionName === collectionName);
10
+ const aggregateQueryItem = [];
11
+ if (Array.isArray(collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations) &&
12
+ (collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations.length)) {
13
+ aggregateQueryItem.push(...collectionConfig.aggregations);
14
+ }
15
+ aggregateQueryItem.push({
16
+ $match: Object.assign({ _id: {
17
+ $in: ids,
18
+ } }, ((collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.match) || {})),
19
+ }, { $addFields: { __order: { $indexOfArray: [ids, '$_id'] } } }, { $sort: { __order: 1 } });
20
+ return aggregateQueryItem;
21
+ };
22
+ const getWidgetDataDB = (code, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
23
+ var _a;
24
+ const { Widget } = models;
25
+ const widgetDataArr = (yield Widget.aggregate([
26
+ {
27
+ $match: {
28
+ isDeleted: false,
29
+ isActive: true,
30
+ code,
31
+ },
32
+ },
33
+ {
34
+ // Get only the fields that are not excluded
35
+ $project: Object.assign({}, defaults_1.commonExcludedFields),
36
+ },
37
+ {
38
+ // Get Items data
39
+ $lookup: {
40
+ from: 'items',
41
+ let: { widget: '$_id' },
42
+ pipeline: [
43
+ {
44
+ $match: {
45
+ $expr: {
46
+ $eq: ['$widgetId', '$$widget'],
47
+ },
48
+ isDeleted: false,
49
+ },
50
+ },
51
+ ...(defaults_1.defaults.languages && ((_a = defaults_1.defaults.languages) === null || _a === void 0 ? void 0 : _a.length) > 0
52
+ ? defaults_1.defaults.languages.reduce((arr, lng) => {
53
+ arr.push({
54
+ $lookup: {
55
+ from: 'file',
56
+ let: { img: { $toObjectId: `$imgs.${lng.code}` } },
57
+ as: `images.${lng.code}`,
58
+ pipeline: [
59
+ {
60
+ $match: {
61
+ $expr: {
62
+ $eq: ['$_id', '$$img'],
63
+ },
64
+ },
65
+ },
66
+ {
67
+ $project: {
68
+ _id: 1,
69
+ uri: 1,
70
+ },
71
+ },
72
+ ],
73
+ },
74
+ }, {
75
+ $unwind: {
76
+ path: `$images.${lng.code}`,
77
+ preserveNullAndEmptyArrays: true,
78
+ },
79
+ });
80
+ return arr;
81
+ }, [])
82
+ : [
83
+ {
84
+ $lookup: {
85
+ from: 'file',
86
+ let: { img: '$img' },
87
+ as: 'image',
88
+ pipeline: [
89
+ {
90
+ $match: {
91
+ $expr: {
92
+ $eq: ['$_id', '$$img'],
93
+ },
94
+ },
95
+ },
96
+ {
97
+ $project: {
98
+ _id: 1,
99
+ uri: 1,
100
+ },
101
+ },
102
+ ],
103
+ },
104
+ },
105
+ {
106
+ $unwind: {
107
+ path: '$image',
108
+ preserveNullAndEmptyArrays: true,
109
+ },
110
+ },
111
+ ]),
112
+ {
113
+ $project: Object.assign({ sequence: 0, imgs: 0 }, defaults_1.commonExcludedFields),
114
+ },
115
+ // {
116
+ // $lookup: {
117
+ // from: 'srcsets',
118
+ // let: { item: '$_id' },
119
+ // as: 'srcset',
120
+ // pipeline: [
121
+ // {
122
+ // $match: {
123
+ // $expr: {
124
+ // $eq: ['$itemId', '$$item'],
125
+ // },
126
+ // },
127
+ // },
128
+ // {
129
+ // $project: {
130
+ // ...commonExcludedFields,
131
+ // _id: 0,
132
+ // itemId: 0,
133
+ // },
134
+ // },
135
+ // ],
136
+ // },
137
+ // },
138
+ ],
139
+ as: 'items',
140
+ },
141
+ },
142
+ ]));
143
+ if (!widgetDataArr.length) {
144
+ return null;
145
+ }
146
+ const widgetData = widgetDataArr[0];
147
+ if (widgetData.collectionName &&
148
+ widgetData.collectionItems &&
149
+ widgetData.collectionItems.length > 0) {
150
+ const aggregateQueryItem = getAggregationQuery({
151
+ collectionName: widgetData.collectionName,
152
+ ids: widgetData.collectionItems,
153
+ });
154
+ const collectionModal = (0, helper_1.getCollectionModal)(widgetData.collectionName, models);
155
+ const collectionItems = yield collectionModal.aggregate(aggregateQueryItem);
156
+ widgetData.collectionItems = collectionItems;
157
+ }
158
+ if (widgetData.collectionName &&
159
+ widgetData.tabs &&
160
+ widgetData.tabs.length > 0) {
161
+ const tabCollectionItemIds = widgetData.tabs.reduce((acc, tabItem) => {
162
+ acc.push(...tabItem.collectionItems);
163
+ return acc;
164
+ }, []);
165
+ const aggregateQueryItem = getAggregationQuery({
166
+ collectionName: widgetData.collectionName,
167
+ ids: tabCollectionItemIds,
168
+ });
169
+ const collectionModal = (0, helper_1.getCollectionModal)(widgetData.collectionName, models);
170
+ const collectionItems = yield collectionModal.aggregate(aggregateQueryItem);
171
+ // converting colleciton items to obj to better access them
172
+ const collectionItemsObj = collectionItems.reduce((acc, item) => {
173
+ acc[item._id] = item;
174
+ return acc;
175
+ }, {});
176
+ widgetData.tabs = widgetData.tabs.map((tabItem) => {
177
+ return {
178
+ name: tabItem.name,
179
+ names: tabItem.names,
180
+ collectionItems: tabItem.collectionItems.map((collectionId) => collectionItemsObj[collectionId]),
181
+ };
182
+ });
183
+ }
184
+ (0, helper_1.AddSrcSetsToItems)(widgetData);
185
+ return widgetData;
186
+ });
187
+ exports.getWidgetDataDB = getWidgetDataDB;
188
+ const updateRedisWidget = (code, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
189
+ const widgetData = yield (0, exports.getWidgetDataDB)(code, models);
190
+ if (widgetData) {
191
+ yield (0, redis_1.setRedisValue)(`widgetData_${code}`, widgetData);
192
+ }
193
+ });
194
+ exports.updateRedisWidget = updateRedisWidget;
195
+ const updateWidgetPagesData = (widgetIds, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
196
+ const { Page } = models;
197
+ const pageCodes = yield Page.find({
198
+ widgets: {
199
+ $in: widgetIds,
200
+ },
201
+ }, 'code').distinct('code');
202
+ if (pageCodes.length) {
203
+ pageCodes.forEach((code) => {
204
+ (0, redis_1.deleteRedisValue)(`pageData_${code}`);
205
+ });
206
+ }
207
+ });
208
+ exports.updateWidgetPagesData = updateWidgetPagesData;
209
+ const getPageDataDB = (code, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
210
+ var _b;
211
+ const { Page } = models;
212
+ const pageData = (yield Page.aggregate([
213
+ {
214
+ $match: {
215
+ isDeleted: false,
216
+ code: code,
217
+ },
218
+ },
219
+ {
220
+ $project: {
221
+ isDeleted: 0,
222
+ deletedAt: 0,
223
+ __v: 0,
224
+ },
225
+ },
226
+ {
227
+ $lookup: {
228
+ from: 'widgets',
229
+ let: { widgets: '$widgets' },
230
+ pipeline: [
231
+ {
232
+ $match: {
233
+ $expr: {
234
+ $in: ['$_id', '$$widgets'],
235
+ },
236
+ isDeleted: false,
237
+ isActive: true,
238
+ },
239
+ },
240
+ {
241
+ $project: Object.assign({ widgetId: 0, sequence: 0 }, defaults_1.commonExcludedFields),
242
+ },
243
+ {
244
+ $lookup: {
245
+ from: 'items',
246
+ let: { widget: '$_id' },
247
+ pipeline: [
248
+ {
249
+ $match: {
250
+ $expr: {
251
+ $eq: ['$widgetId', '$$widget'],
252
+ },
253
+ isDeleted: false,
254
+ },
255
+ },
256
+ ...(defaults_1.defaults.languages && ((_b = defaults_1.defaults.languages) === null || _b === void 0 ? void 0 : _b.length) > 0
257
+ ? defaults_1.defaults.languages.reduce((arr, lng) => {
258
+ arr.push({
259
+ $lookup: {
260
+ from: 'file',
261
+ let: { img: { $toObjectId: `$imgs.${lng.code}` } },
262
+ as: `images.${lng.code}`,
263
+ pipeline: [
264
+ {
265
+ $match: {
266
+ $expr: {
267
+ $eq: ['$_id', '$$img'],
268
+ },
269
+ },
270
+ },
271
+ {
272
+ $project: {
273
+ _id: 1,
274
+ uri: 1,
275
+ },
276
+ },
277
+ ],
278
+ },
279
+ }, {
280
+ $unwind: {
281
+ path: `$images.${lng.code}`,
282
+ preserveNullAndEmptyArrays: true,
283
+ },
284
+ });
285
+ return arr;
286
+ }, [])
287
+ : [
288
+ {
289
+ $lookup: {
290
+ from: 'file',
291
+ let: { img: '$img' },
292
+ as: 'image',
293
+ pipeline: [
294
+ {
295
+ $match: {
296
+ $expr: {
297
+ $eq: ['$_id', '$$img'],
298
+ },
299
+ },
300
+ },
301
+ {
302
+ $project: {
303
+ _id: 1,
304
+ uri: 1,
305
+ },
306
+ },
307
+ ],
308
+ },
309
+ },
310
+ {
311
+ $unwind: {
312
+ path: '$image',
313
+ preserveNullAndEmptyArrays: true,
314
+ },
315
+ },
316
+ ]),
317
+ {
318
+ $project: Object.assign({ sequence: 0, imgs: 0 }, defaults_1.commonExcludedFields),
319
+ },
320
+ // {
321
+ // $lookup: {
322
+ // from: 'srcsets',
323
+ // let: { item: '$_id' },
324
+ // as: 'srcset',
325
+ // pipeline: [
326
+ // {
327
+ // $match: {
328
+ // $expr: {
329
+ // $eq: ['$itemId', '$$item'],
330
+ // },
331
+ // },
332
+ // },
333
+ // {
334
+ // $project: {
335
+ // ...commonExcludedFields,
336
+ // _id: 0,
337
+ // itemId: 0,
338
+ // },
339
+ // },
340
+ // ],
341
+ // },
342
+ // },
343
+ ],
344
+ as: 'items',
345
+ },
346
+ },
347
+ ],
348
+ as: 'widgetsData',
349
+ },
350
+ },
351
+ ]));
352
+ if (!pageData.length) {
353
+ return null;
354
+ }
355
+ pageData[0].widgetsData = yield (0, helper_1.appendCollectionData)(pageData[0].widgetsData, models);
356
+ if (Array.isArray(pageData[0].widgetsData) &&
357
+ pageData[0].widgetsData.length > 0) {
358
+ pageData[0].widgetsData.forEach((widget) => {
359
+ (0, helper_1.AddSrcSetsToItems)(widget);
360
+ });
361
+ }
362
+ pageData[0].widgetsData = pageData[0].widgetsData.reduce((acc, widgetItem) => {
363
+ acc[widgetItem._id] = widgetItem;
364
+ return acc;
365
+ }, []);
366
+ pageData[0].widgets = pageData[0].widgets
367
+ .map((widgetId) => pageData[0].widgetsData[widgetId])
368
+ .filter(Boolean);
369
+ delete pageData[0].widgetsData;
370
+ return pageData[0];
371
+ });
372
+ exports.getPageDataDB = getPageDataDB;
373
+ const updateRedisPage = (code, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
374
+ const pageData = yield (0, exports.getPageDataDB)(code, models);
375
+ if (pageData) {
376
+ yield (0, redis_1.setRedisValue)(`pageData_${code}`, pageData);
377
+ }
378
+ });
379
+ exports.updateRedisPage = updateRedisPage;
380
+ const handleUpdateData = (collectionName, itemId, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
381
+ if (!models)
382
+ throw new Error('models is required');
383
+ const { Widget } = models;
384
+ const widgets = yield Widget.find({
385
+ collectionName: collectionName,
386
+ collectionItems: {
387
+ $in: Array.isArray(itemId) ? itemId : [itemId],
388
+ },
389
+ }, 'code _id').lean();
390
+ if (widgets.length) {
391
+ (0, exports.updateWidgetPagesData)(widgets.map((widget) => widget._id), models);
392
+ widgets.forEach((widget) => {
393
+ (0, redis_1.deleteRedisValue)(`widgetData_${widget['code']}`);
394
+ });
395
+ }
396
+ });
397
+ exports.handleUpdateData = handleUpdateData;
398
+ const handleResetData = (type, code) => {
399
+ if ((type === 'widget' || type === 'page') && code)
400
+ (0, redis_1.deleteRedisValue)(`${type}_${code}`);
401
+ };
402
+ exports.handleResetData = handleResetData;
403
+ //# sourceMappingURL=dataService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataService.js","sourceRoot":"","sources":["../../../../../libs/node/src/services/dataService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Model, FilterQuery, QueryOptions, ProjectionType, HydratedDocument, QueryWithHelpers } from 'mongoose';
2
+ import { EntityType, IModel, ReturnDocument } from '../types';
3
+ export declare function create<T extends EntityType>(Modal: Model<T>, data: Partial<T>): Promise<ReturnDocument>;
4
+ export declare function update<T extends EntityType>(Modal: Model<T>, query: FilterQuery<EntityType>, data: Partial<T>): Promise<T | undefined>;
5
+ export declare function remove<T extends EntityType>(Modal: Model<T>, query: FilterQuery<EntityType>): Promise<T | undefined>;
6
+ export declare function deleteAll<T extends EntityType>(Modal: Model<T>, query: FilterQuery<T>): Promise<import("mongodb").DeleteResult>;
7
+ export declare function getAll<T extends EntityType>(Modal: Model<T>, query?: FilterQuery<EntityType>, options?: QueryOptions<EntityType>, projection?: ProjectionType<EntityType>): QueryWithHelpers<Array<T>, T, {}, T>;
8
+ export declare function list<T extends EntityType>(Modal: IModel<T>, where: FilterQuery<T>, options: QueryOptions<T>): Promise<ReturnDocument[]>;
9
+ export declare function getOne<T extends EntityType>(Modal: Model<T>, query: FilterQuery<EntityType>, projection?: ProjectionType<EntityType>): Promise<HydratedDocument<T>>;
10
+ export declare function bulkInsert<T extends EntityType>(Modal: Model<T>, docs: T[]): Promise<ReturnDocument[]>;
11
+ export declare function checkUnique<T extends EntityType>({ Modal, uniqueField, errorMessage, value }: {
12
+ Modal: Model<T>;
13
+ uniqueField: keyof T;
14
+ value: any;
15
+ errorMessage: string;
16
+ }): Promise<void>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkUnique = exports.bulkInsert = exports.getOne = exports.list = exports.getAll = exports.deleteAll = exports.remove = exports.update = exports.create = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // create
6
+ function create(Modal, data) {
7
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
+ const modalInstance = new Modal(data);
9
+ return yield modalInstance.save();
10
+ });
11
+ }
12
+ exports.create = create;
13
+ // update
14
+ function update(Modal, query, data) {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ yield getOne(Modal, query);
17
+ const result = yield Modal.findOneAndUpdate(query, data, { new: true });
18
+ return result || undefined;
19
+ });
20
+ }
21
+ exports.update = update;
22
+ // soft-delete
23
+ function remove(Modal, query) {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
+ const modalInstance = yield getOne(Modal, query);
26
+ yield modalInstance.remove();
27
+ return modalInstance;
28
+ });
29
+ }
30
+ exports.remove = remove;
31
+ // delete-all
32
+ function deleteAll(Modal, query) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ return Modal.deleteMany(query);
35
+ });
36
+ }
37
+ exports.deleteAll = deleteAll;
38
+ // get-all
39
+ function getAll(Modal, query = {}, options, projection
40
+ // eslint-disable-next-line @typescript-eslint/ban-types
41
+ ) {
42
+ return Modal.find(query, projection, options);
43
+ }
44
+ exports.getAll = getAll;
45
+ // list
46
+ function list(Modal, where, options) {
47
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
48
+ try {
49
+ const documents = Modal.paginate(where, options);
50
+ return documents;
51
+ }
52
+ catch (error) {
53
+ throw new Error(error.message);
54
+ }
55
+ });
56
+ }
57
+ exports.list = list;
58
+ // get-one
59
+ function getOne(Modal, query, projection) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const modalInstance = yield Modal.findOne(query, projection);
62
+ if (!modalInstance)
63
+ throw new Error(`Record not found ${Modal.name ? `in ${Modal.name}` : ''}`);
64
+ return modalInstance;
65
+ });
66
+ }
67
+ exports.getOne = getOne;
68
+ // bulk-insert
69
+ function bulkInsert(Modal, docs) {
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ return yield Modal.insertMany(docs);
72
+ });
73
+ }
74
+ exports.bulkInsert = bulkInsert;
75
+ function checkUnique({ Modal, uniqueField, errorMessage, value }) {
76
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ const query = { [uniqueField]: value };
78
+ let result;
79
+ try {
80
+ result = yield getOne(Modal, query);
81
+ }
82
+ catch (error) { }
83
+ if (result)
84
+ throw new Error(errorMessage);
85
+ });
86
+ }
87
+ exports.checkUnique = checkUnique;
88
+ //# sourceMappingURL=dbService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbService.js","sourceRoot":"","sources":["../../../../../libs/node/src/services/dbService.ts"],"names":[],"mappings":";;;;AAUA,SAAS;AACT,SAAsB,MAAM,CAC1B,KAAe,EACf,IAAgB;;QAEhB,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;CAAA;AAND,wBAMC;AACD,SAAS;AACT,SAAsB,MAAM,CAC1B,KAAe,EACf,KAA8B,EAC9B,IAAgB;;QAEhB,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;CAAA;AARD,wBAQC;AACD,cAAc;AACd,SAAsB,MAAM,CAC1B,KAAe,EACf,KAA8B;;QAE9B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC;CAAA;AAPD,wBAOC;AACD,aAAa;AACb,SAAsB,SAAS,CAAuB,KAAe,EAAE,KAAqB;;QAC1F,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CAAA;AAFD,8BAEC;AACD,UAAU;AACV,SAAgB,MAAM,CACpB,KAAe,EACf,QAAiC,EAAE,EACnC,OAAkC,EAClC,UAAuC;AACvC,wDAAwD;;IAExD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AARD,wBAQC;AACD,OAAO;AACP,SAAsB,IAAI,CACxB,KAAgB,EAChB,KAAqB,EACrB,OAAwB;;QAExB,IAAI;YACF,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;SAClB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;SAC3C;IACH,CAAC;CAAA;AAXD,oBAWC;AACD,UAAU;AACV,SAAsB,MAAM,CAC1B,KAAe,EACf,KAA8B,EAC9B,UAAuC;;QAEvC,MAAM,aAAa,GAA+B,MAAM,KAAK,CAAC,OAAO,CACnE,KAAK,EACL,UAAU,CACX,CAAC;QACF,IAAI,CAAC,aAAa;YAChB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9E,OAAO,aAAa,CAAC;IACvB,CAAC;CAAA;AAbD,wBAaC;AACD,cAAc;AACd,SAAsB,UAAU,CAAuB,KAAe,EAAE,IAAS;;QAC/E,OAAO,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CAAA;AAFD,gCAEC;AAED,SAAsB,WAAW,CAAuB,EACxD,KAAK,EACL,WAAW,EACX,YAAY,EACZ,KAAK,EAMJ;;QACC,MAAM,KAAK,GAAmB,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAoB,CAAC;QACzE,IAAI,MAAM,CAAC;QACX,IAAI;YACF,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE,GAAE;QAClB,IAAG,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;CAAA;AAjBD,kCAiBC"}