@knovator/pagecreator-node 1.2.0 → 1.2.1

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 +152 -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knovator/pagecreator-node",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "type": "commonjs",
5
5
  "author": "knovator (https://knovator.com/)",
6
6
  "description": "PageCreator Node.js module",
@@ -35,5 +35,7 @@
35
35
  "src",
36
36
  "package.json",
37
37
  "README.md"
38
- ]
38
+ ],
39
+ "main": "./src/index.js",
40
+ "types": "./src/index.d.ts"
39
41
  }
@@ -0,0 +1,20 @@
1
+ export declare const VALIDATION: {
2
+ WIDGET_EXISTS: string;
3
+ SLUG_EXISTS: string;
4
+ };
5
+ export declare const RESPONSE_CODES: {
6
+ DEFAULT: string;
7
+ ERROR: string;
8
+ VALIDATION_FAILED: string;
9
+ };
10
+ export declare const REGEXS: {
11
+ OBJECTID_CAST_FAILED: RegExp;
12
+ IS_AVAILABLE: RegExp;
13
+ };
14
+ export declare const MONGOOSE_FIND_QUERIES: string[];
15
+ export declare const success = 200;
16
+ export declare const create = 201;
17
+ export declare const internalServerError = 500;
18
+ export declare const validationError = 422;
19
+ export declare const notFoundError = 404;
20
+ export declare const messageRoutePrefix = "msg";
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.messageRoutePrefix = exports.notFoundError = exports.validationError = exports.internalServerError = exports.create = exports.success = exports.MONGOOSE_FIND_QUERIES = exports.REGEXS = exports.RESPONSE_CODES = exports.VALIDATION = void 0;
4
+ exports.VALIDATION = {
5
+ WIDGET_EXISTS: 'Widget with same code is available!',
6
+ SLUG_EXISTS: 'Widget with same slug is available!',
7
+ };
8
+ exports.RESPONSE_CODES = {
9
+ DEFAULT: 'SUCCESS',
10
+ ERROR: 'ERROR',
11
+ VALIDATION_FAILED: 'VALIDATION_FAILED'
12
+ };
13
+ exports.REGEXS = {
14
+ OBJECTID_CAST_FAILED: /Cast to ObjectId failed/gm,
15
+ IS_AVAILABLE: /is available!/gm
16
+ };
17
+ exports.MONGOOSE_FIND_QUERIES = [
18
+ 'count',
19
+ 'find',
20
+ 'findOne',
21
+ 'findOneAndDelete',
22
+ 'findOneAndRemove',
23
+ 'findOneAndUpdate',
24
+ 'update',
25
+ 'updateOne',
26
+ 'updateMany',
27
+ ];
28
+ exports.success = 200;
29
+ exports.create = 201;
30
+ exports.internalServerError = 500;
31
+ exports.validationError = 422;
32
+ exports.notFoundError = 404;
33
+ exports.messageRoutePrefix = 'msg';
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/node/src/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,aAAa,EAAE,qCAAqC;IACpD,WAAW,EAAE,qCAAqC;CACnD,CAAC;AACW,QAAA,cAAc,GAAG;IAC7B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,iBAAiB,EAAE,mBAAmB;CACtC,CAAC;AACW,QAAA,MAAM,GAAG;IACrB,oBAAoB,EAAE,2BAA2B;IACjD,YAAY,EAAE,iBAAiB;CAC/B,CAAC;AACW,QAAA,qBAAqB,GAAG;IACpC,OAAO;IACP,MAAM;IACN,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,QAAQ;IACR,WAAW;IACX,YAAY;CACZ,CAAC;AACW,QAAA,OAAO,GAAG,GAAG,CAAC;AACd,QAAA,MAAM,GAAG,GAAG,CAAC;AACb,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,eAAe,GAAG,GAAG,CAAC;AACtB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,kBAAkB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const createPage: (req: any, res: any, next: any) => void;
2
+ export declare const updatePage: (req: any, res: any, next: any) => void;
3
+ export declare const deletePage: (req: any, res: any, next: any) => void;
4
+ export declare const getPages: (req: any, res: any, next: any) => void;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPages = exports.deletePage = exports.updatePage = exports.createPage = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose_1 = require("mongoose");
6
+ const dbService_1 = require("../services/dbService");
7
+ const responseHandlers_1 = require("./../utils/responseHandlers");
8
+ const defaults_1 = require("../utils/defaults");
9
+ const dataService_1 = require("../services/dataService");
10
+ const constants_1 = require("../constants");
11
+ const catchAsync = (fn) => {
12
+ return defaults_1.defaults.catchAsync(fn, 'Page');
13
+ };
14
+ const getModals = (req) => defaults_1.defaults.getModals(req);
15
+ exports.createPage = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
+ var _a;
17
+ const { Page } = getModals(req);
18
+ const data = req.body;
19
+ yield (0, dbService_1.checkUnique)({
20
+ Modal: Page,
21
+ uniqueField: 'code',
22
+ value: data.code,
23
+ errorMessage: constants_1.VALIDATION.WIDGET_EXISTS
24
+ });
25
+ yield (0, dbService_1.checkUnique)({
26
+ Modal: Page,
27
+ uniqueField: 'slug',
28
+ value: data.slug,
29
+ errorMessage: constants_1.VALIDATION.SLUG_EXISTS
30
+ });
31
+ const page = yield (0, dbService_1.create)(Page, data);
32
+ res.message = (_a = req === null || req === void 0 ? void 0 : req.i18n) === null || _a === void 0 ? void 0 : _a.t('page.create');
33
+ return (0, responseHandlers_1.createdDocumentResponse)(page, res);
34
+ }));
35
+ exports.updatePage = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
36
+ var _b;
37
+ const models = getModals(req);
38
+ const data = req.body;
39
+ const _id = req.params['id'];
40
+ const updatedPage = yield (0, dbService_1.update)(models['Page'], { _id }, data);
41
+ res.message = (_b = req === null || req === void 0 ? void 0 : req.i18n) === null || _b === void 0 ? void 0 : _b.t('page.update');
42
+ if (updatedPage)
43
+ (0, dataService_1.updateRedisPage)(updatedPage.code, models); // update redis
44
+ return (0, responseHandlers_1.successResponse)(updatedPage, res);
45
+ }));
46
+ exports.deletePage = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
47
+ var _c;
48
+ const { Page } = getModals(req);
49
+ const _id = new mongoose_1.Types.ObjectId(req.params['id']);
50
+ const createdPage = yield (0, dbService_1.remove)(Page, { _id });
51
+ res.message = (_c = req === null || req === void 0 ? void 0 : req.i18n) === null || _c === void 0 ? void 0 : _c.t('page.delete');
52
+ return (0, responseHandlers_1.successResponse)(createdPage, res);
53
+ }));
54
+ exports.getPages = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
55
+ var _d;
56
+ const { Page } = getModals(req);
57
+ const search = req.body.search || '';
58
+ const { page, limit, populate, sort } = req.body.options;
59
+ const customOptions = Object.assign({ populate,
60
+ sort }, (page && limit ? { page, limit } : {}));
61
+ const query = {
62
+ isDeleted: false,
63
+ $or: [
64
+ {
65
+ name: {
66
+ $regex: search,
67
+ $options: 'i',
68
+ },
69
+ },
70
+ {
71
+ code: {
72
+ $regex: search,
73
+ $options: 'i',
74
+ },
75
+ },
76
+ ],
77
+ };
78
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
79
+ // @ts-ignore
80
+ const pages = yield (0, dbService_1.list)(Page, query, customOptions);
81
+ res.message = (_d = req === null || req === void 0 ? void 0 : req.i18n) === null || _d === void 0 ? void 0 : _d.t('page.getAll');
82
+ return (0, responseHandlers_1.successResponse)(pages, res);
83
+ }));
84
+ //# sourceMappingURL=PageController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageController.js","sourceRoot":"","sources":["../../../../../libs/node/src/controllers/PageController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const createTab: (req: any, res: any, next: any) => void;
2
+ export declare const updateTab: (req: any, res: any, next: any) => void;
3
+ export declare const deleteTab: (req: any, res: any, next: any) => void;
4
+ export declare const getTabs: (req: any, res: any, next: any) => void;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTabs = exports.deleteTab = exports.updateTab = exports.createTab = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose_1 = require("mongoose");
6
+ const dbService_1 = require("../services/dbService");
7
+ const responseHandlers_1 = require("./../utils/responseHandlers");
8
+ const defaults_1 = require("../utils/defaults");
9
+ const catchAsync = (fn) => {
10
+ return defaults_1.defaults.catchAsync(fn, 'Tab');
11
+ };
12
+ const getModals = (req) => defaults_1.defaults.getModals(req);
13
+ exports.createTab = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
14
+ var _a;
15
+ const { Tab } = getModals(req);
16
+ const data = req.body;
17
+ const tab = yield (0, dbService_1.create)(Tab, data);
18
+ res.message = (_a = req === null || req === void 0 ? void 0 : req.i18n) === null || _a === void 0 ? void 0 : _a.t('tab.create');
19
+ return (0, responseHandlers_1.createdDocumentResponse)(tab, res);
20
+ }));
21
+ exports.updateTab = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
+ var _b;
23
+ const { Tab } = getModals(req);
24
+ const data = req.body;
25
+ const _id = req.params['tabId'];
26
+ const updatedTab = yield (0, dbService_1.update)(Tab, { _id }, data);
27
+ res.message = (_b = req === null || req === void 0 ? void 0 : req.i18n) === null || _b === void 0 ? void 0 : _b.t('tab.update');
28
+ return (0, responseHandlers_1.successResponse)(updatedTab, res);
29
+ }));
30
+ exports.deleteTab = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
+ var _c;
32
+ const { Tab } = getModals(req);
33
+ const _id = new mongoose_1.Types.ObjectId(req.params['tabId']);
34
+ const deletedTab = yield (0, dbService_1.remove)(Tab, { _id });
35
+ res.message = (_c = req === null || req === void 0 ? void 0 : req.i18n) === null || _c === void 0 ? void 0 : _c.t('tab.delete');
36
+ return (0, responseHandlers_1.successResponse)(deletedTab, res);
37
+ }));
38
+ exports.getTabs = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
39
+ var _d;
40
+ const { Tab } = getModals(req);
41
+ const widgetId = new mongoose_1.Types.ObjectId(req.params['widgetId']);
42
+ const tab = yield (0, dbService_1.getAll)(Tab, { widgetId });
43
+ res.message = (_d = req === null || req === void 0 ? void 0 : req.i18n) === null || _d === void 0 ? void 0 : _d.t('tab.getAll');
44
+ return (0, responseHandlers_1.successResponse)(tab, res);
45
+ }));
46
+ //# sourceMappingURL=TabController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabController.js","sourceRoot":"","sources":["../../../../../libs/node/src/controllers/TabController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const getWidgetData: (req: any, res: any, next: any) => void;
2
+ export declare const getPageData: (req: any, res: any, next: any) => void;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageData = exports.getWidgetData = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const redis_1 = require("../utils/redis");
6
+ const responseHandlers_1 = require("./../utils/responseHandlers");
7
+ const defaults_1 = require("../utils/defaults");
8
+ const dataService_1 = require("../services/dataService");
9
+ const catchAsync = (fn) => {
10
+ return defaults_1.defaults.catchAsync(fn, 'User');
11
+ };
12
+ const getModals = (req) => defaults_1.defaults.getModals(req);
13
+ // TO Do: Optimize the following
14
+ exports.getWidgetData = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
+ var _a;
16
+ const models = getModals(req);
17
+ const { fresh } = req.query;
18
+ const { code } = req.body;
19
+ let widgetData = yield (0, redis_1.getRedisValue)(`widgetData_${code}`);
20
+ if (widgetData && fresh !== 'true') {
21
+ return (0, responseHandlers_1.successResponse)(widgetData, res);
22
+ }
23
+ widgetData = yield (0, dataService_1.getWidgetDataDB)(code, models);
24
+ if (!widgetData) {
25
+ res.message = (_a = req === null || req === void 0 ? void 0 : req.i18n) === null || _a === void 0 ? void 0 : _a.t('user.widgetNotFound');
26
+ return (0, responseHandlers_1.recordNotFound)(res);
27
+ }
28
+ yield (0, redis_1.setRedisValue)(`widgetData_${code}`, widgetData);
29
+ return (0, responseHandlers_1.successResponse)(widgetData, res);
30
+ }));
31
+ // TO Do: Optimize the following
32
+ exports.getPageData = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
33
+ var _b, _c;
34
+ const models = getModals(req);
35
+ const { fresh } = req.query;
36
+ let code = req.body.code;
37
+ const slug = req.body.slug;
38
+ const { Page } = models;
39
+ if (slug) {
40
+ const page = yield Page.findOne({ slug });
41
+ if (!page) {
42
+ res.message = (_b = req === null || req === void 0 ? void 0 : req.i18n) === null || _b === void 0 ? void 0 : _b.t('user.pageNotFound');
43
+ return (0, responseHandlers_1.recordNotFound)(res);
44
+ }
45
+ code = page.code;
46
+ }
47
+ let pageData = yield (0, redis_1.getRedisValue)(`pageData_${code}`);
48
+ if (pageData && fresh !== 'true') {
49
+ return (0, responseHandlers_1.successResponse)(pageData, res);
50
+ }
51
+ try {
52
+ pageData = yield (0, dataService_1.getPageDataDB)(code, models);
53
+ console.log(code);
54
+ }
55
+ catch (error) {
56
+ console.log(error);
57
+ }
58
+ if (!pageData) {
59
+ res.message = (_c = req === null || req === void 0 ? void 0 : req.i18n) === null || _c === void 0 ? void 0 : _c.t('user.pageNotFound');
60
+ return (0, responseHandlers_1.recordNotFound)(res);
61
+ }
62
+ yield (0, redis_1.setRedisValue)(`pageData_${code}`, pageData);
63
+ return (0, responseHandlers_1.successResponse)(pageData, res);
64
+ }));
65
+ //# sourceMappingURL=UserController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../../../../libs/node/src/controllers/UserController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const createWidget: (req: any, res: any, next: any) => void;
2
+ export declare const updateWidget: (req: any, res: any, next: any) => void;
3
+ export declare const deleteWidget: (req: any, res: any, next: any) => void;
4
+ export declare const getWidgets: (req: any, res: any, next: any) => void;
5
+ export declare const getSingleWidget: (req: any, res: any, next: any) => void;
6
+ export declare const partialUpdateWidget: (req: any, res: any, next: any) => void;
7
+ export declare const getItemsTypes: (req: any, res: any, next: any) => void;
8
+ export declare const getWidgetTypes: (req: any, res: any, next: any) => void;
9
+ export declare const getCollectionData: (req: any, res: any, next: any) => void;
10
+ export declare const getLanguages: (req: any, res: any, next: any) => void;
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLanguages = exports.getCollectionData = exports.getWidgetTypes = exports.getItemsTypes = exports.partialUpdateWidget = exports.getSingleWidget = exports.getWidgets = exports.deleteWidget = exports.updateWidget = exports.createWidget = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose_1 = require("mongoose");
6
+ const dbService_1 = require("../services/dbService");
7
+ const constants_1 = require("../constants");
8
+ const responseHandlers_1 = require("./../utils/responseHandlers");
9
+ const defaults_1 = require("../utils/defaults");
10
+ const helper_1 = require("../utils/helper");
11
+ const types_1 = require("../types");
12
+ const dataService_1 = require("../services/dataService");
13
+ const catchAsync = (fn) => {
14
+ return defaults_1.defaults.catchAsync(fn, 'Widget');
15
+ };
16
+ const getModals = (req) => defaults_1.defaults.getModals(req);
17
+ const deleteItems = (widgetId, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
18
+ const { Item } = models;
19
+ yield (0, dbService_1.deleteAll)(Item, { widgetId: new mongoose_1.Types.ObjectId(widgetId) });
20
+ });
21
+ const createItems = (itemsData, widgetId, models) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
+ const { Item, SrcSet } = models;
23
+ itemsData = itemsData.map((item) => (Object.assign(Object.assign({}, item), { _id: new mongoose_1.Types.ObjectId(), widgetId })));
24
+ const srcSetItems = itemsData.reduce((acc, item) => {
25
+ if (Array.isArray(item.srcset)) {
26
+ acc.push(...item.srcset.map((srcSetItem) => (Object.assign(Object.assign({}, srcSetItem), { itemId: item._id }))));
27
+ delete item.srcset;
28
+ }
29
+ return acc;
30
+ }, []);
31
+ yield (0, dbService_1.bulkInsert)(Item, itemsData);
32
+ yield (0, dbService_1.bulkInsert)(SrcSet, srcSetItems);
33
+ });
34
+ exports.createWidget = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
35
+ var _a;
36
+ const models = getModals(req);
37
+ const data = req.body;
38
+ let items = [];
39
+ yield (0, dbService_1.checkUnique)({
40
+ Modal: models['Widget'],
41
+ uniqueField: 'code',
42
+ value: data.code,
43
+ errorMessage: constants_1.VALIDATION.WIDGET_EXISTS
44
+ });
45
+ if ('items' in data) {
46
+ items = JSON.parse(JSON.stringify(data.items));
47
+ delete data.items;
48
+ }
49
+ const widget = yield (0, dbService_1.create)(models['Widget'], data);
50
+ if (items.length > 0) {
51
+ yield createItems(items, widget._id, models);
52
+ }
53
+ res.message = (_a = req === null || req === void 0 ? void 0 : req.i18n) === null || _a === void 0 ? void 0 : _a.t('widget.create');
54
+ return (0, responseHandlers_1.createdDocumentResponse)(widget, res);
55
+ }));
56
+ exports.updateWidget = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
57
+ var _b;
58
+ const models = getModals(req);
59
+ const data = req.body;
60
+ const _id = req.params['id'];
61
+ let items = [];
62
+ if ('items' in data) {
63
+ items = JSON.parse(JSON.stringify(data.items));
64
+ delete data.items;
65
+ }
66
+ const updatedWidget = yield (0, dbService_1.update)(models['Widget'], { _id }, data);
67
+ if (items.length > 0 && updatedWidget) {
68
+ yield deleteItems(_id, models);
69
+ yield createItems(items, updatedWidget._id, models);
70
+ }
71
+ if (updatedWidget) {
72
+ (0, dataService_1.updateRedisWidget)(updatedWidget.code, models);
73
+ (0, dataService_1.updateWidgetPagesData)([updatedWidget.id], models);
74
+ }
75
+ res.message = (_b = req === null || req === void 0 ? void 0 : req.i18n) === null || _b === void 0 ? void 0 : _b.t('widget.update');
76
+ return (0, responseHandlers_1.successResponse)(updatedWidget, res);
77
+ }));
78
+ exports.deleteWidget = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
79
+ var _c;
80
+ const models = getModals(req);
81
+ yield deleteItems(req.params['id'], models);
82
+ const _id = new mongoose_1.Types.ObjectId(req.params['id']);
83
+ const deletedWidget = yield (0, dbService_1.remove)(models['Widget'], { _id });
84
+ if (deletedWidget) {
85
+ (0, dataService_1.updateRedisWidget)(deletedWidget.code, models);
86
+ (0, dataService_1.updateWidgetPagesData)([deletedWidget.id], models);
87
+ }
88
+ res.message = (_c = req === null || req === void 0 ? void 0 : req.i18n) === null || _c === void 0 ? void 0 : _c.t('widget.delete');
89
+ return (0, responseHandlers_1.successResponse)(deletedWidget, res);
90
+ }));
91
+ exports.getWidgets = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
92
+ var _d;
93
+ const { Widget } = getModals(req);
94
+ const search = req.body.search || '';
95
+ const { collectionItems } = req.body;
96
+ const { page, limit, sort } = req.body.options;
97
+ const all = (typeof req.body.all !== 'undefined' && req.body.all === true) || false;
98
+ const isActive = typeof req.body.isActive !== 'undefined'
99
+ ? req.body.isActive || false
100
+ : null;
101
+ const customOptions = Object.assign({ pagination: !all, sort, select: 'name code isActive canDel' }, (page && limit ? { page, limit } : {}));
102
+ const orOptions = [];
103
+ if (search) {
104
+ orOptions.push({ name: { $regex: search, $options: 'i' } });
105
+ orOptions.push({ code: { $regex: search, $options: 'i' } });
106
+ }
107
+ else {
108
+ orOptions.push({});
109
+ }
110
+ if (Array.isArray(collectionItems) && collectionItems.length) {
111
+ orOptions.push({ _id: { $in: collectionItems } });
112
+ }
113
+ const query = {
114
+ isDeleted: false,
115
+ isActive: { $in: isActive === null ? [true, false] : [isActive] },
116
+ $or: orOptions,
117
+ };
118
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
119
+ // @ts-ignore
120
+ const notifications = yield (0, dbService_1.list)(Widget, query, customOptions);
121
+ res.message = (_d = req === null || req === void 0 ? void 0 : req.i18n) === null || _d === void 0 ? void 0 : _d.t('widget.getAll');
122
+ return (0, responseHandlers_1.successResponse)(notifications, res);
123
+ }));
124
+ exports.getSingleWidget = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
125
+ var _e, _f;
126
+ const { Widget, Item } = getModals(req);
127
+ const _id = req.params['id'];
128
+ const widget = yield (yield (0, dbService_1.getOne)(Widget, { _id, isDeleted: true })).toJSON();
129
+ widget['items'] = yield Item.aggregate([
130
+ {
131
+ $match: {
132
+ widgetId: new mongoose_1.Types.ObjectId(_id),
133
+ isDeleted: false,
134
+ },
135
+ },
136
+ {
137
+ $project: Object.assign({}, defaults_1.commonExcludedFields),
138
+ },
139
+ ...(defaults_1.defaults.languages && ((_e = defaults_1.defaults.languages) === null || _e === void 0 ? void 0 : _e.length) > 0
140
+ ? defaults_1.defaults.languages.reduce((arr, lng) => {
141
+ arr.push({
142
+ $lookup: {
143
+ from: 'file',
144
+ let: { imgsId: { $toObjectId: `$imgs.${lng.code}` } },
145
+ as: `imgs.${lng.code}`,
146
+ pipeline: [
147
+ {
148
+ $match: {
149
+ $expr: {
150
+ $eq: ['$_id', '$$imgsId'],
151
+ },
152
+ },
153
+ },
154
+ {
155
+ $project: Object.assign(Object.assign({}, defaults_1.commonExcludedFields), { width: 0, module: 0, height: 0 }),
156
+ },
157
+ ],
158
+ },
159
+ }, {
160
+ $unwind: {
161
+ path: `$imgs.${lng.code}`,
162
+ preserveNullAndEmptyArrays: true,
163
+ },
164
+ });
165
+ return arr;
166
+ }, [])
167
+ : [
168
+ {
169
+ $lookup: {
170
+ from: 'file',
171
+ let: { imgId: '$img' },
172
+ as: 'img',
173
+ pipeline: [
174
+ {
175
+ $match: {
176
+ $expr: {
177
+ $eq: ['$_id', '$$imgId'],
178
+ },
179
+ },
180
+ },
181
+ {
182
+ $project: Object.assign(Object.assign({}, defaults_1.commonExcludedFields), { width: 0, module: 0, height: 0 }),
183
+ },
184
+ ],
185
+ },
186
+ },
187
+ {
188
+ $unwind: {
189
+ path: '$img',
190
+ preserveNullAndEmptyArrays: true,
191
+ },
192
+ },
193
+ ]),
194
+ {
195
+ $lookup: {
196
+ from: 'srcsets',
197
+ let: { item: '$_id' },
198
+ as: 'srcset',
199
+ pipeline: [
200
+ {
201
+ $match: {
202
+ $expr: {
203
+ $eq: ['$itemId', '$$item'],
204
+ },
205
+ },
206
+ },
207
+ {
208
+ $project: Object.assign(Object.assign({}, defaults_1.commonExcludedFields), { _id: 0, itemId: 0 }),
209
+ },
210
+ ],
211
+ },
212
+ },
213
+ ]);
214
+ res.message = (_f = req === null || req === void 0 ? void 0 : req.i18n) === null || _f === void 0 ? void 0 : _f.t('widget.getOne');
215
+ return (0, responseHandlers_1.successResponse)(widget, res);
216
+ }));
217
+ exports.partialUpdateWidget = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
218
+ var _g;
219
+ const models = getModals(req);
220
+ const data = req.body;
221
+ const _id = req.params['id'];
222
+ const updatedWidget = yield (0, dbService_1.update)(models['Widget'], { _id }, data);
223
+ if (updatedWidget) {
224
+ (0, dataService_1.updateRedisWidget)(updatedWidget.code, models);
225
+ (0, dataService_1.updateWidgetPagesData)([updatedWidget.id], models);
226
+ }
227
+ res.message = (_g = req === null || req === void 0 ? void 0 : req.i18n) === null || _g === void 0 ? void 0 : _g.t('widget.partialUpdate');
228
+ return (0, responseHandlers_1.successResponse)(updatedWidget, res);
229
+ }));
230
+ exports.getItemsTypes = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
231
+ var _h;
232
+ const itemsTypes = [
233
+ {
234
+ value: Object.keys(types_1.ItemsType)[0],
235
+ label: Object.values(types_1.ItemsType)[0],
236
+ },
237
+ ];
238
+ defaults_1.defaults.collections.forEach((item) => {
239
+ itemsTypes.push({
240
+ value: item.collectionName,
241
+ label: item.title,
242
+ });
243
+ });
244
+ res.message = (_h = req === null || req === void 0 ? void 0 : req.i18n) === null || _h === void 0 ? void 0 : _h.t('widget.getItemsTypes');
245
+ return (0, responseHandlers_1.successResponse)(itemsTypes, res);
246
+ }));
247
+ exports.getWidgetTypes = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
248
+ var _j;
249
+ const widgetTypes = Object.entries(types_1.WidgetTypes).map((e) => ({
250
+ label: e[1],
251
+ value: e[0],
252
+ }));
253
+ if (Array.isArray(defaults_1.defaults.customWidgetTypes) &&
254
+ defaults_1.defaults.customWidgetTypes.length > 0) {
255
+ widgetTypes.push(...defaults_1.defaults.customWidgetTypes);
256
+ }
257
+ res.message = (_j = req === null || req === void 0 ? void 0 : req.i18n) === null || _j === void 0 ? void 0 : _j.t('widget.getWidgetTypes');
258
+ return (0, responseHandlers_1.successResponse)(widgetTypes, res);
259
+ }));
260
+ exports.getCollectionData = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
261
+ var _k;
262
+ const models = getModals(req);
263
+ const { search, collectionName, collectionItems } = req.body;
264
+ const collectionItem = defaults_1.defaults.collections.find((collection) => collection.collectionName === collectionName);
265
+ if (!collectionItem) {
266
+ throw new Error(`No collection is specified with ${collectionName}`);
267
+ }
268
+ let limit = collectionItem.searchLimit || 10;
269
+ if (Array.isArray(collectionItems))
270
+ limit = Math.max(collectionItems.length, limit);
271
+ // setting up mongoose model
272
+ const TempModel = (0, helper_1.getCollectionModal)(collectionName, models);
273
+ // fetching data
274
+ let query = collectionItem.filters || {};
275
+ const orOptions = [];
276
+ let addFieldOptions = {};
277
+ if (search &&
278
+ Array.isArray(collectionItem.searchColumns) &&
279
+ collectionItem.searchColumns.length) {
280
+ collectionItem.searchColumns.forEach((column) => orOptions.push({
281
+ [column]: {
282
+ $regex: search,
283
+ $options: 'i',
284
+ },
285
+ }));
286
+ }
287
+ else {
288
+ orOptions.push({});
289
+ }
290
+ if (Array.isArray(collectionItems) && collectionItems.length) {
291
+ addFieldOptions = {
292
+ __order: {
293
+ $indexOfArray: [
294
+ collectionItems,
295
+ {
296
+ $toString: '$_id',
297
+ },
298
+ ],
299
+ },
300
+ };
301
+ orOptions.push({ _id: { $in: (0, helper_1.formatCollectionItems)(collectionItems) } });
302
+ }
303
+ if (orOptions.length > 0) {
304
+ query = Object.assign(Object.assign({}, query), { $or: orOptions });
305
+ }
306
+ const collectionData = yield TempModel.aggregate([
307
+ ...(Array.isArray(collectionItem.aggregations)
308
+ ? collectionItem.aggregations
309
+ : []),
310
+ {
311
+ $match: query,
312
+ },
313
+ { $addFields: addFieldOptions },
314
+ {
315
+ $sort: {
316
+ __order: -1,
317
+ },
318
+ },
319
+ {
320
+ $limit: limit,
321
+ },
322
+ ]);
323
+ res.message = (_k = req === null || req === void 0 ? void 0 : req.i18n) === null || _k === void 0 ? void 0 : _k.t('widget.getCollectionData');
324
+ return (0, responseHandlers_1.successResponse)({ docs: collectionData }, res);
325
+ }));
326
+ exports.getLanguages = catchAsync((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
327
+ return (0, responseHandlers_1.successResponse)(Array.isArray(defaults_1.defaults.languages) ? defaults_1.defaults.languages : [], res);
328
+ }));
329
+ //# sourceMappingURL=WidgetController.js.map