@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
@@ -1,7 +1,6 @@
1
1
  import { Request } from 'express';
2
-
3
2
  export interface IRequest extends Request {
4
- i18n?: {
5
- t: (key: string) => string;
6
- };
3
+ i18n?: {
4
+ t: (key: string) => string;
5
+ };
7
6
  }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IRequest.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/IRequest.ts"],"names":[],"mappings":""}
@@ -1,7 +1,6 @@
1
1
  import { Response } from 'express';
2
-
3
2
  export interface IResponse extends Response {
4
- message?: string;
5
- data?: unknown;
6
- code?: number;
3
+ message?: string;
4
+ data?: unknown;
5
+ code?: number;
7
6
  }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/IResponse.ts"],"names":[],"mappings":""}
@@ -1,5 +1,4 @@
1
1
  import { Router } from 'express';
2
-
3
2
  export interface IRouter extends Router {
4
- descriptor: (text: string) => void;
3
+ descriptor: (text: string) => void;
5
4
  }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/Router.ts"],"names":[],"mappings":""}
@@ -0,0 +1,142 @@
1
+ /// <reference types="express-serve-static-core" />
2
+ import { Document, Model, Models, Types, FilterQuery, QueryOptions, HydratedDocument } from 'mongoose';
3
+ import { ItemsType, WidgetTypes, ItemTypes } from '.';
4
+ export type TypesType = {
5
+ value: string;
6
+ label: string;
7
+ };
8
+ export type LanguageSchemaFieldType = {
9
+ [key: string]: string;
10
+ };
11
+ export interface iConfig {
12
+ logger: any;
13
+ catchAsync: (fn: any, modal?: string) => (req: any, res: any, next: any) => void;
14
+ collections: CollectionItem[];
15
+ }
16
+ export interface IPageSchema extends Document {
17
+ name: string;
18
+ code: string;
19
+ slug: string;
20
+ canDel: boolean;
21
+ widgets: string[];
22
+ }
23
+ export interface ITabSchema extends Document {
24
+ name: string;
25
+ names: LanguageSchemaFieldType;
26
+ widgetId: typeof Types.ObjectId;
27
+ collectionItems: string[];
28
+ }
29
+ export interface ISrcSetSchema extends Document {
30
+ width: number;
31
+ height: number;
32
+ screenSize: number;
33
+ itemId: typeof Types.ObjectId;
34
+ }
35
+ export interface IWidgetSchema extends Document {
36
+ items: any;
37
+ name: string;
38
+ code: string;
39
+ autoPlay: boolean;
40
+ isActive: boolean;
41
+ widgetTitle: string;
42
+ widgetTitles: LanguageSchemaFieldType;
43
+ webPerRow: number;
44
+ mobilePerRow: number;
45
+ tabletPerRow: number;
46
+ itemsType: ItemsType;
47
+ widgetType: WidgetTypes;
48
+ collectionName: string;
49
+ collectionItems: string[];
50
+ tabs: {
51
+ name: string;
52
+ names?: LanguageSchemaFieldType;
53
+ collectionItems: string[];
54
+ }[];
55
+ backgroundColor: string;
56
+ textContent: string;
57
+ htmlContent: string;
58
+ canDel: boolean;
59
+ }
60
+ export interface IItemSchema extends Document {
61
+ widgetId: typeof Types.ObjectId;
62
+ title: string;
63
+ titles: LanguageSchemaFieldType;
64
+ subtitle: string;
65
+ subtitles: LanguageSchemaFieldType;
66
+ altText: string;
67
+ altTexts: LanguageSchemaFieldType;
68
+ link: string;
69
+ sequence: number;
70
+ itemType: ItemTypes;
71
+ img: any;
72
+ imgs: any;
73
+ srcset?: SrcSetItem[];
74
+ }
75
+ export interface SrcSetItem {
76
+ screenSize: number;
77
+ width: number;
78
+ height: number;
79
+ }
80
+ export type CollectionItem = {
81
+ title: string;
82
+ collectionName: string;
83
+ filters?: {
84
+ [key: string]: string | number | boolean;
85
+ };
86
+ searchColumns?: string[];
87
+ match?: ObjectType;
88
+ aggregations?: any[];
89
+ searchLimit?: number;
90
+ };
91
+ export type RedisConfig = {
92
+ HOST: string;
93
+ PORT: number;
94
+ PASSWORD?: string;
95
+ USER?: string;
96
+ DB?: number;
97
+ };
98
+ export interface IConfig {
99
+ logger: any;
100
+ catchAsync: (fn: any, modal?: string) => (req: any, res: any, next: any) => void;
101
+ getModals: (req: Express.Request) => Models;
102
+ collections: CollectionItem[];
103
+ customWidgetTypes: {
104
+ label: string;
105
+ value: string;
106
+ imageOnly?: boolean;
107
+ collectionsOnly?: boolean;
108
+ }[];
109
+ redis?: string | RedisConfig;
110
+ languages?: LanguageType[];
111
+ }
112
+ export type EntityType = IWidgetSchema | IItemSchema | IPageSchema | ISrcSetSchema | ITabSchema;
113
+ export type ReturnDocument = EntityType;
114
+ export interface IModel<T> extends Model<T> {
115
+ paginate: (query: FilterQuery<T>, options?: QueryOptions) => Promise<HydratedDocument<ReturnDocument>[]>;
116
+ }
117
+ export type ObjectType = {
118
+ [key: string]: string | number | boolean | null | undefined | string[] | number[] | ObjectType | ObjectType[] | any;
119
+ };
120
+ export interface IDefaultValidations {
121
+ createdBy: string;
122
+ updatedBy: string;
123
+ deletedBy: string;
124
+ deletedAt: string;
125
+ }
126
+ export interface IWidgetDataSchema {
127
+ _id: string;
128
+ code: string;
129
+ collectionName: string;
130
+ collectionItems: string[];
131
+ tabs: {
132
+ name: string;
133
+ collectionItems: string[];
134
+ }[];
135
+ }
136
+ export type IWidgetData = {
137
+ [key: string]: IWidgetDataSchema;
138
+ };
139
+ export type LanguageType = {
140
+ code: string;
141
+ name: string;
142
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/common.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export declare enum ItemsType {
2
+ Image = "Image"
3
+ }
4
+ export declare enum WidgetTypes {
5
+ FixedCard = "FixedCard",
6
+ Carousel = "Carousel",
7
+ Tabs = "Tabs",
8
+ Text = "Text",
9
+ HTML = "HTML"
10
+ }
11
+ export declare enum ItemTypes {
12
+ Web = "Web",
13
+ Mobile = "Mobile"
14
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ItemTypes = exports.WidgetTypes = exports.ItemsType = void 0;
4
+ var ItemsType;
5
+ (function (ItemsType) {
6
+ ItemsType["Image"] = "Image";
7
+ })(ItemsType = exports.ItemsType || (exports.ItemsType = {}));
8
+ var WidgetTypes;
9
+ (function (WidgetTypes) {
10
+ WidgetTypes["FixedCard"] = "FixedCard";
11
+ WidgetTypes["Carousel"] = "Carousel";
12
+ WidgetTypes["Tabs"] = "Tabs";
13
+ WidgetTypes["Text"] = "Text";
14
+ WidgetTypes["HTML"] = "HTML";
15
+ })(WidgetTypes = exports.WidgetTypes || (exports.WidgetTypes = {}));
16
+ var ItemTypes;
17
+ (function (ItemTypes) {
18
+ ItemTypes["Web"] = "Web";
19
+ ItemTypes["Mobile"] = "Mobile";
20
+ })(ItemTypes = exports.ItemTypes || (exports.ItemTypes = {}));
21
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,4BAAe,CAAA;AACjB,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./IRequest"), exports);
5
+ tslib_1.__exportStar(require("./IResponse"), exports);
6
+ tslib_1.__exportStar(require("./enums"), exports);
7
+ tslib_1.__exportStar(require("./Router"), exports);
8
+ tslib_1.__exportStar(require("./common"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,sDAA4B;AAC5B,kDAAwB;AACxB,mDAAyB;AACzB,mDAAyB"}
@@ -0,0 +1,7 @@
1
+ import { IConfig } from '../types';
2
+ export declare const defaults: IConfig;
3
+ export declare const commonExcludedFields: {
4
+ __v: number;
5
+ isDeleted: number;
6
+ deletedAt: number;
7
+ };
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commonExcludedFields = exports.defaults = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose_1 = tslib_1.__importDefault(require("mongoose"));
6
+ const constants_1 = require("../constants");
7
+ exports.defaults = {
8
+ logger: console,
9
+ getModals: () => mongoose_1.default.models,
10
+ catchAsync: (fn, modal = '') => (req, res, next) => {
11
+ Promise.resolve(fn(req, res, next)).catch((err) => {
12
+ let message = err.message;
13
+ if (message.match(constants_1.REGEXS.OBJECTID_CAST_FAILED)) {
14
+ message = `${modal} not found with given id!`;
15
+ }
16
+ else if (message.match(constants_1.REGEXS.IS_AVAILABLE)) {
17
+ return res.status(constants_1.validationError).json({
18
+ code: constants_1.RESPONSE_CODES.VALIDATION_FAILED,
19
+ message,
20
+ data: undefined,
21
+ });
22
+ }
23
+ // this.logger.error(err.message);
24
+ return res.status(constants_1.internalServerError).json({
25
+ code: constants_1.RESPONSE_CODES.ERROR,
26
+ message,
27
+ data: undefined,
28
+ });
29
+ });
30
+ },
31
+ collections: [],
32
+ customWidgetTypes: [],
33
+ redis: undefined,
34
+ languages: [],
35
+ };
36
+ exports.commonExcludedFields = {
37
+ __v: 0,
38
+ isDeleted: 0,
39
+ deletedAt: 0,
40
+ };
41
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/defaults.ts"],"names":[],"mappings":";;;;AAAA,gEAAgC;AAGhC,4CAA8F;AAEjF,QAAA,QAAQ,GAAY;IAC/B,MAAM,EAAE,OAAc;IACtB,SAAS,EAAE,GAAG,EAAE,CAAC,kBAAQ,CAAC,MAAM;IAChC,UAAU,EACR,CAAC,EAAO,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CACxB,CAAC,GAAa,EAAE,GAAc,EAAE,IAAkB,EAAE,EAAE;QACpD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,IAAI,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;YACrC,IAAI,OAAO,CAAC,KAAK,CAAC,kBAAM,CAAC,oBAAoB,CAAC,EAAE;gBAC9C,OAAO,GAAG,GAAG,KAAK,2BAA2B,CAAC;aAC/C;iBAAM,IAAG,OAAO,CAAC,KAAK,CAAC,kBAAM,CAAC,YAAY,CAAC,EAAE;gBAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,2BAAe,CAAC,CAAC,IAAI,CAAC;oBACtC,IAAI,EAAE,0BAAc,CAAC,iBAAiB;oBACtC,OAAO;oBACP,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;aACJ;YACD,kCAAkC;YAClC,OAAO,GAAG,CAAC,MAAM,CAAC,+BAAmB,CAAC,CAAC,IAAI,CAAC;gBAC1C,IAAI,EAAE,0BAAc,CAAC,KAAK;gBAC1B,OAAO;gBACP,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACH,WAAW,EAAE,EAAsB;IACnC,iBAAiB,EAAE,EAAE;IACrB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,EAAE;CACd,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Models, Types } from 'mongoose';
2
+ import { IWidgetSchema, SrcSetItem } from '../types';
3
+ export declare function appendCollectionData(widgetData: IWidgetSchema[], models: Models): Promise<IWidgetSchema[]>;
4
+ export declare function buildSrcSetItem(uri: string, setItem: SrcSetItem): string;
5
+ export declare function AddSrcSetsToItems(widgetData: IWidgetSchema): void;
6
+ export declare const getCollectionModal: (collectionName: string, models: Models) => any;
7
+ export declare const formatCollectionItems: (collectionItems: any[]) => Types.ObjectId[];
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatCollectionItems = exports.getCollectionModal = exports.AddSrcSetsToItems = exports.buildSrcSetItem = exports.appendCollectionData = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const mongoose_1 = require("mongoose");
6
+ const defaults_1 = require("./defaults");
7
+ function appendCollectionData(widgetData, models) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const { Widget } = models;
10
+ // reduce widget data to optimize query
11
+ const newData = widgetData.reduce((acc, widget) => {
12
+ if (widget.collectionName) {
13
+ acc[widget.code] = {
14
+ _id: widget._id,
15
+ code: widget.code,
16
+ collectionName: widget.collectionName,
17
+ collectionItems: widget.collectionItems,
18
+ tabs: widget.tabs,
19
+ };
20
+ }
21
+ return acc;
22
+ }, {});
23
+ if (Object.keys(newData).length > 0) {
24
+ const aggregationQueryCollectionItems = buildCollectionItemsQuery(newData);
25
+ if (aggregationQueryCollectionItems.length > 0) {
26
+ // getting collection data by populating widget
27
+ let aggregationData = yield Widget.aggregate(aggregationQueryCollectionItems);
28
+ aggregationData = aggregationData.reduce((acc, aggregation) => {
29
+ acc[aggregation.code] = aggregation[aggregation.code];
30
+ return acc;
31
+ }, {});
32
+ // adding collection data to widgets
33
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34
+ // @ts-ignore
35
+ widgetData = widgetData.map((widget) => {
36
+ if (aggregationData[widget.code]) {
37
+ return Object.assign(Object.assign({}, widget), { collectionItems: aggregationData[widget.code] });
38
+ }
39
+ return widget;
40
+ });
41
+ }
42
+ const aggregationQueryTabs = buildTabCollectionItemsQuery(newData);
43
+ if (aggregationQueryTabs.length > 0) {
44
+ let aggregationDataTabs = yield Widget.aggregate(aggregationQueryTabs);
45
+ aggregationDataTabs = aggregationDataTabs.reduce((acc, aggregation) => {
46
+ if (aggregation[aggregation.code])
47
+ acc[aggregation.code] = aggregation[aggregation.code];
48
+ return acc;
49
+ }, {});
50
+ // adding collection data to widgets
51
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
52
+ // @ts-ignore
53
+ widgetData = widgetData.map((widget) => {
54
+ if (!aggregationDataTabs[widget.code])
55
+ return widget;
56
+ const collectionItemsObj = aggregationDataTabs[widget.code].reduce((acc, item) => {
57
+ acc[item._id] = item;
58
+ return acc;
59
+ }, {});
60
+ return Object.assign(Object.assign({}, widget), { tabs: widget.tabs.map((tabItem) => {
61
+ return {
62
+ name: tabItem.name,
63
+ names: tabItem.names,
64
+ collectionItems: tabItem.collectionItems
65
+ .map((collectionId) => collectionItemsObj[collectionId])
66
+ .filter(Boolean),
67
+ };
68
+ }) });
69
+ });
70
+ }
71
+ }
72
+ // returning widget data as it is if they do not have dynamic collection
73
+ return widgetData;
74
+ });
75
+ }
76
+ exports.appendCollectionData = appendCollectionData;
77
+ function buildCollectionItemsQuery(formattedWidgetData) {
78
+ const aggregationQuery = [
79
+ {
80
+ $match: {
81
+ _id: {
82
+ $in: Object.values(formattedWidgetData).map((item) => item._id),
83
+ },
84
+ },
85
+ },
86
+ {
87
+ // Get only the fields that are not excluded
88
+ $project: {
89
+ _id: 1,
90
+ code: 1,
91
+ },
92
+ },
93
+ ];
94
+ let collectionConfig;
95
+ Object.keys(formattedWidgetData).forEach((key) => {
96
+ if (formattedWidgetData[key].collectionItems &&
97
+ formattedWidgetData[key].collectionItems.length > 0) {
98
+ const aggregationQueryPiplelines = [];
99
+ collectionConfig = defaults_1.defaults.collections.find((c) => c.collectionName === formattedWidgetData[key].collectionName);
100
+ if (Array.isArray(collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations) &&
101
+ (collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations.length)) {
102
+ aggregationQueryPiplelines.push(...collectionConfig.aggregations);
103
+ }
104
+ const ids = (0, exports.formatCollectionItems)(formattedWidgetData[key].collectionItems);
105
+ // Build piplelines with config
106
+ aggregationQueryPiplelines.push(...[
107
+ {
108
+ $match: Object.assign({ _id: {
109
+ $in: ids,
110
+ } }, ((collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.match) || {})),
111
+ },
112
+ {
113
+ $project: Object.assign({}, defaults_1.commonExcludedFields),
114
+ },
115
+ { $addFields: { __order: { $indexOfArray: [ids, '$_id'] } } },
116
+ { $sort: { __order: 1 } },
117
+ ]);
118
+ // Build Aggregation Query
119
+ aggregationQuery.push({
120
+ $lookup: {
121
+ from: formattedWidgetData[key].collectionName,
122
+ pipeline: aggregationQueryPiplelines,
123
+ as: formattedWidgetData[key].code,
124
+ },
125
+ });
126
+ }
127
+ });
128
+ return aggregationQuery;
129
+ }
130
+ function buildTabCollectionItemsQuery(formattedWidgetData) {
131
+ const aggregationQuery = [
132
+ {
133
+ $match: {
134
+ _id: {
135
+ $in: Object.values(formattedWidgetData).map((item) => item._id),
136
+ },
137
+ },
138
+ },
139
+ {
140
+ // Get only the fields that are not excluded
141
+ $project: {
142
+ _id: 1,
143
+ code: 1,
144
+ },
145
+ },
146
+ ];
147
+ let collectionConfig;
148
+ Object.keys(formattedWidgetData).forEach((key) => {
149
+ if (formattedWidgetData[key].tabs &&
150
+ formattedWidgetData[key].tabs.length > 0) {
151
+ const aggregationQueryPiplelines = [];
152
+ collectionConfig = defaults_1.defaults.collections.find((c) => c.collectionName === formattedWidgetData[key].collectionName);
153
+ if (Array.isArray(collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations) &&
154
+ (collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.aggregations.length)) {
155
+ aggregationQueryPiplelines.push(...collectionConfig.aggregations);
156
+ }
157
+ // Build piplelines with config
158
+ aggregationQueryPiplelines.push(...[
159
+ {
160
+ $match: Object.assign({ _id: {
161
+ $in: formattedWidgetData[key].tabs.reduce((arr, tabItem) => {
162
+ arr.push(...(0, exports.formatCollectionItems)(tabItem.collectionItems));
163
+ return arr;
164
+ }, []),
165
+ } }, ((collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.match) || {})),
166
+ },
167
+ {
168
+ $project: Object.assign({}, defaults_1.commonExcludedFields),
169
+ },
170
+ ]);
171
+ // Build Aggregation Query
172
+ aggregationQuery.push({
173
+ $lookup: {
174
+ from: formattedWidgetData[key].collectionName,
175
+ pipeline: aggregationQueryPiplelines,
176
+ as: formattedWidgetData[key].code,
177
+ },
178
+ });
179
+ }
180
+ });
181
+ return aggregationQuery;
182
+ }
183
+ function buildSrcSetItem(uri, setItem) {
184
+ const imageItemArr = (uri === null || uri === void 0 ? void 0 : uri.split('/')) || [];
185
+ imageItemArr.splice(imageItemArr.length - 1, 0, `${setItem.width}x${setItem.height}`);
186
+ return imageItemArr.join('/');
187
+ }
188
+ exports.buildSrcSetItem = buildSrcSetItem;
189
+ function AddSrcSetsToItems(widgetData) {
190
+ if (Array.isArray(widgetData.items) && widgetData.items.length > 0) {
191
+ widgetData.items.forEach((item) => {
192
+ if (Array.isArray(item.srcset) && item.srcset.length > 0 && item.image) {
193
+ item.srcSets = item.srcset.reduce((strArr, setItem) => {
194
+ const imageUri = buildSrcSetItem(item.image.uri, setItem);
195
+ strArr.push(`${imageUri} ${setItem.screenSize}w`);
196
+ return strArr;
197
+ }, []);
198
+ item.srcSets = item.srcSets.join(', ');
199
+ }
200
+ });
201
+ }
202
+ }
203
+ exports.AddSrcSetsToItems = AddSrcSetsToItems;
204
+ const getCollectionModal = (collectionName, models) => {
205
+ let collectionModal = models[collectionName];
206
+ if (!collectionModal)
207
+ collectionModal = models[collectionName.charAt(0).toUpperCase() + collectionName.slice(1)];
208
+ if (!collectionModal) {
209
+ const schema = new mongoose_1.Schema({}, { strict: false });
210
+ collectionModal = (0, mongoose_1.model)(collectionName, schema, collectionName);
211
+ }
212
+ return collectionModal;
213
+ };
214
+ exports.getCollectionModal = getCollectionModal;
215
+ const formatCollectionItems = (collectionItems) => {
216
+ if (Array.isArray(collectionItems) && collectionItems.length === 0)
217
+ return [];
218
+ return collectionItems.map((item) => {
219
+ if (item instanceof mongoose_1.Types.ObjectId)
220
+ return item;
221
+ return new mongoose_1.Types.ObjectId(item);
222
+ });
223
+ };
224
+ exports.formatCollectionItems = formatCollectionItems;
225
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getRedisValue: (key: string) => Promise<any>;
2
+ export declare const setRedisValue: (key: string, value: JSON) => Promise<"OK" | null>;
3
+ export declare const deleteRedisValue: (key: string) => Promise<number | null>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteRedisValue = exports.setRedisValue = exports.getRedisValue = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const lzutf8_1 = tslib_1.__importDefault(require("lzutf8"));
6
+ const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
7
+ const defaults_1 = require("./defaults");
8
+ let redis = null;
9
+ const initRedis = () => {
10
+ if (defaults_1.defaults.redis && typeof defaults_1.defaults.redis === 'string') {
11
+ redis = new ioredis_1.default(defaults_1.defaults.redis);
12
+ }
13
+ else if (defaults_1.defaults.redis && typeof defaults_1.defaults.redis === 'object') {
14
+ redis = new ioredis_1.default(defaults_1.defaults.redis.PORT, defaults_1.defaults.redis.HOST, {
15
+ password: defaults_1.defaults.redis.PASSWORD,
16
+ username: defaults_1.defaults.redis.USER,
17
+ db: defaults_1.defaults.redis.DB,
18
+ });
19
+ }
20
+ else
21
+ redis = undefined;
22
+ };
23
+ const getRedisValue = (key) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
+ if (redis === null) {
25
+ initRedis();
26
+ }
27
+ if (!redis) {
28
+ return null;
29
+ }
30
+ const value = yield redis.get(key);
31
+ if (!value) {
32
+ return null;
33
+ }
34
+ const str = lzutf8_1.default.decompress(lzutf8_1.default.decodeBase64(value));
35
+ return JSON.parse(str);
36
+ });
37
+ exports.getRedisValue = getRedisValue;
38
+ const setRedisValue = (key, value) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
39
+ if (redis === null) {
40
+ initRedis();
41
+ }
42
+ if (!redis) {
43
+ return null;
44
+ }
45
+ const compressed = lzutf8_1.default.encodeBase64(lzutf8_1.default.compress(JSON.stringify(value)));
46
+ return yield redis.set(key, compressed);
47
+ });
48
+ exports.setRedisValue = setRedisValue;
49
+ const deleteRedisValue = (key) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
50
+ if (redis === null) {
51
+ initRedis();
52
+ }
53
+ if (!redis) {
54
+ return null;
55
+ }
56
+ return yield redis.del(key);
57
+ });
58
+ exports.deleteRedisValue = deleteRedisValue;
59
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/redis.ts"],"names":[],"mappings":";;;;AAAA,4DAAwB;AACxB,8DAA8B;AAC9B,yCAAsC;AAEtC,IAAI,KAAK,GAA+B,IAAI,CAAC;AAE7C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,IAAI,mBAAQ,CAAC,KAAK,IAAI,OAAO,mBAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;QACxD,KAAK,GAAG,IAAI,iBAAO,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC;KACrC;SAAM,IAAI,mBAAQ,CAAC,KAAK,IAAI,OAAO,mBAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;QAC/D,KAAK,GAAG,IAAI,iBAAO,CACjB,mBAAQ,CAAC,KAAK,CAAC,IAAc,EAC7B,mBAAQ,CAAC,KAAK,CAAC,IAAc,EAC7B;YACE,QAAQ,EAAE,mBAAQ,CAAC,KAAK,CAAC,QAAQ;YACjC,QAAQ,EAAE,mBAAQ,CAAC,KAAK,CAAC,IAAI;YAC7B,EAAE,EAAE,mBAAQ,CAAC,KAAK,CAAC,EAAE;SACtB,CACF,CAAC;KACH;;QAAM,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAO,GAAW,EAAE,EAAE;IACjD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,SAAS,EAAE,CAAC;KACb;IACD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,MAAM,GAAG,GAAG,gBAAE,CAAC,UAAU,CAAC,gBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAA,CAAC;AAbW,QAAA,aAAa,iBAaxB;AAEK,MAAM,aAAa,GAAG,CAAO,GAAW,EAAE,KAAW,EAAE,EAAE;IAC9D,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,SAAS,EAAE,CAAC;KACb;IACD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,gBAAE,CAAC,YAAY,CAAC,gBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC,CAAA,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,gBAAgB,GAAG,CAAO,GAAW,EAAE,EAAE;IACpD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,SAAS,EAAE,CAAC;KACb;IACD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAA,CAAC;AARW,QAAA,gBAAgB,oBAQ3B"}
@@ -0,0 +1,6 @@
1
+ import { IResponse } from '../types';
2
+ export declare const failureResponse: (data: any, res: IResponse) => IResponse;
3
+ export declare const successResponse: (data: any, res: IResponse) => IResponse;
4
+ export declare const createdDocumentResponse: (data: any, res: IResponse) => IResponse;
5
+ export declare const recordNotFound: (res: IResponse) => IResponse;
6
+ export declare const inValidParam: (message: any, res: IResponse) => IResponse;