@knovator/pagecreator-node 0.2.0 → 0.3.0

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 (120) hide show
  1. package/package.json +6 -3
  2. package/src/constants/index.d.ts +16 -0
  3. package/src/constants/index.js +30 -0
  4. package/src/constants/index.js.map +1 -0
  5. package/src/controllers/ItemController.d.ts +4 -0
  6. package/src/controllers/ItemController.js +108 -0
  7. package/src/controllers/ItemController.js.map +1 -0
  8. package/src/controllers/PageController.d.ts +4 -0
  9. package/src/controllers/PageController.js +61 -0
  10. package/src/controllers/PageController.js.map +1 -0
  11. package/src/controllers/UserController.d.ts +2 -0
  12. package/src/controllers/UserController.js +238 -0
  13. package/src/controllers/UserController.js.map +1 -0
  14. package/src/controllers/WidgetController.d.ts +8 -0
  15. package/src/controllers/WidgetController.js +131 -0
  16. package/src/controllers/WidgetController.js.map +1 -0
  17. package/src/index.d.ts +8 -0
  18. package/src/index.js +29 -0
  19. package/src/index.js.map +1 -0
  20. package/src/models/Item.d.ts +3 -0
  21. package/src/models/Item.js +29 -0
  22. package/src/models/Item.js.map +1 -0
  23. package/src/models/Page.d.ts +3 -0
  24. package/src/models/Page.js +16 -0
  25. package/src/models/Page.js.map +1 -0
  26. package/src/models/SrcSet.d.ts +4 -0
  27. package/src/models/SrcSet.js +15 -0
  28. package/src/models/SrcSet.js.map +1 -0
  29. package/src/models/Widget.d.ts +3 -0
  30. package/src/models/Widget.js +41 -0
  31. package/src/models/Widget.js.map +1 -0
  32. package/src/models/{index.ts → index.d.ts} +0 -1
  33. package/src/models/index.js +13 -0
  34. package/src/models/index.js.map +1 -0
  35. package/src/plugins/softDelete.d.ts +7 -0
  36. package/src/plugins/softDelete.js +64 -0
  37. package/src/plugins/softDelete.js.map +1 -0
  38. package/src/routes/ItemRoute.d.ts +3 -0
  39. package/src/routes/ItemRoute.js +31 -0
  40. package/src/routes/ItemRoute.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 +47 -0
  49. package/src/routes/WidgetRoute.js.map +1 -0
  50. package/src/services/dbService.d.ts +10 -0
  51. package/src/services/dbService.js +74 -0
  52. package/src/services/dbService.js.map +1 -0
  53. package/src/types/{IRequest.ts → IRequest.d.ts} +3 -4
  54. package/src/types/IRequest.js +3 -0
  55. package/src/types/IRequest.js.map +1 -0
  56. package/src/types/{IResponse.ts → IResponse.d.ts} +3 -4
  57. package/src/types/IResponse.js +3 -0
  58. package/src/types/IResponse.js.map +1 -0
  59. package/src/types/{Router.ts → Router.d.ts} +1 -2
  60. package/src/types/Router.js +3 -0
  61. package/src/types/Router.js.map +1 -0
  62. package/src/types/common.d.ts +91 -0
  63. package/src/types/common.js +3 -0
  64. package/src/types/common.js.map +1 -0
  65. package/src/types/enums.d.ts +11 -0
  66. package/src/types/enums.js +18 -0
  67. package/src/types/enums.js.map +1 -0
  68. package/src/types/{index.ts → index.d.ts} +0 -0
  69. package/src/types/index.js +9 -0
  70. package/src/types/index.js.map +1 -0
  71. package/src/utils/defaults.d.ts +7 -0
  72. package/src/utils/defaults.js +28 -0
  73. package/src/utils/defaults.js.map +1 -0
  74. package/src/utils/helper.d.ts +33 -0
  75. package/src/utils/helper.js +111 -0
  76. package/src/utils/helper.js.map +1 -0
  77. package/src/utils/responseHandlers.d.ts +6 -0
  78. package/src/utils/responseHandlers.js +57 -0
  79. package/src/utils/responseHandlers.js.map +1 -0
  80. package/src/utils/validate.d.ts +4 -0
  81. package/src/utils/validate.js +24 -0
  82. package/src/utils/validate.js.map +1 -0
  83. package/src/utils/validations/item.d.ts +7 -0
  84. package/src/utils/validations/item.js +50 -0
  85. package/src/utils/validations/item.js.map +1 -0
  86. package/src/utils/validations/page.d.ts +7 -0
  87. package/src/utils/validations/page.js +58 -0
  88. package/src/utils/validations/page.js.map +1 -0
  89. package/src/utils/validations/user.d.ts +3 -0
  90. package/src/utils/validations/user.js +12 -0
  91. package/src/utils/validations/user.js.map +1 -0
  92. package/src/utils/validations/widget.d.ts +9 -0
  93. package/src/utils/validations/widget.js +108 -0
  94. package/src/utils/validations/widget.js.map +1 -0
  95. package/src/constants/index.ts +0 -26
  96. package/src/controllers/ItemController.ts +0 -139
  97. package/src/controllers/PageController.ts +0 -65
  98. package/src/controllers/UserController.ts +0 -265
  99. package/src/controllers/WidgetController.ts +0 -165
  100. package/src/index.ts +0 -29
  101. package/src/models/Item.ts +0 -29
  102. package/src/models/Page.ts +0 -17
  103. package/src/models/SrcSet.ts +0 -16
  104. package/src/models/Widget.ts +0 -44
  105. package/src/plugins/softDelete.ts +0 -84
  106. package/src/routes/ItemRoute.ts +0 -32
  107. package/src/routes/PageRoute.ts +0 -31
  108. package/src/routes/UserRoute.ts +0 -32
  109. package/src/routes/WidgetRoute.ts +0 -56
  110. package/src/services/dbService.ts +0 -82
  111. package/src/types/common.ts +0 -130
  112. package/src/types/enums.ts +0 -13
  113. package/src/utils/defaults.ts +0 -30
  114. package/src/utils/helper.ts +0 -133
  115. package/src/utils/responseHandlers.ts +0 -54
  116. package/src/utils/validate.ts +0 -22
  117. package/src/utils/validations/item.ts +0 -51
  118. package/src/utils/validations/page.ts +0 -59
  119. package/src/utils/validations/user.ts +0 -9
  120. package/src/utils/validations/widget.ts +0 -118
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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
+ return yield modalInstance.remove();
27
+ });
28
+ }
29
+ exports.remove = remove;
30
+ // delete-all
31
+ function deleteAll(Modal, query) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ return Modal.deleteMany(query);
34
+ });
35
+ }
36
+ exports.deleteAll = deleteAll;
37
+ // get-all
38
+ function getAll(Modal, query = {}, options, projection
39
+ // eslint-disable-next-line @typescript-eslint/ban-types
40
+ ) {
41
+ return Modal.find(query, projection, options);
42
+ }
43
+ exports.getAll = getAll;
44
+ // list
45
+ function list(Modal, where, options) {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ try {
48
+ const documents = Modal.paginate(where, options);
49
+ return documents;
50
+ }
51
+ catch (error) {
52
+ throw new Error(error.message);
53
+ }
54
+ });
55
+ }
56
+ exports.list = list;
57
+ // get-one
58
+ function getOne(Modal, query, projection) {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ const modalInstance = yield Modal.findOne(query, projection);
61
+ if (!modalInstance)
62
+ throw new Error(`Record not found ${Modal.name ? `in ${Modal.name}` : ''}`);
63
+ return modalInstance;
64
+ });
65
+ }
66
+ exports.getOne = getOne;
67
+ // bulk-insert
68
+ function bulkInsert(Modal, docs) {
69
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
70
+ return yield Modal.insertMany(docs);
71
+ });
72
+ }
73
+ exports.bulkInsert = bulkInsert;
74
+ //# 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,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;CAAA;AAND,wBAMC;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"}
@@ -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,91 @@
1
+ import { Document, Model, Types, FilterQuery, QueryOptions, HydratedDocument } from 'mongoose';
2
+ import { ItemsType, WidgetTypes, ItemTypes } from '.';
3
+ export declare type TypesType = {
4
+ value: string;
5
+ label: string;
6
+ };
7
+ export interface iConfig {
8
+ logger: any;
9
+ catchAsync: (fn: any, modal?: string) => (req: any, res: any, next: any) => void;
10
+ collections: CollectionItem[];
11
+ }
12
+ export interface IPageSchema extends Document {
13
+ name: string;
14
+ code: string;
15
+ widgets: string[];
16
+ }
17
+ export interface ISrcSetSchema extends Document {
18
+ width: number;
19
+ height: number;
20
+ screenSize: number;
21
+ itemId: typeof Types.ObjectId;
22
+ }
23
+ export interface IWidgetSchema extends Document {
24
+ items: any;
25
+ name: string;
26
+ code: string;
27
+ autoPlay: boolean;
28
+ isActive: boolean;
29
+ widgetTitle: string;
30
+ webPerRow: number;
31
+ mobilePerRow: number;
32
+ tabletPerRow: number;
33
+ itemsType: ItemsType;
34
+ widgetType: WidgetTypes;
35
+ collectionName: string;
36
+ collectionItems: string[];
37
+ }
38
+ export interface IItemSchema extends Document {
39
+ widgetId: typeof Types.ObjectId;
40
+ title: string;
41
+ altText: string;
42
+ link: string;
43
+ sequence: number;
44
+ itemType: ItemTypes;
45
+ img: any;
46
+ srcset?: SrcSetItem[];
47
+ }
48
+ export interface SrcSetItem {
49
+ screenSize: number;
50
+ width: number;
51
+ height: number;
52
+ }
53
+ export declare type CollectionItem = {
54
+ title: string;
55
+ collectionName: string;
56
+ filters?: {
57
+ [key: string]: string | number | boolean;
58
+ };
59
+ searchColumns?: string[];
60
+ match?: ObjectType;
61
+ project?: ObjectType;
62
+ lookup?: ObjectType;
63
+ };
64
+ export interface IConfig {
65
+ logger: any;
66
+ catchAsync: (fn: any, modal?: string) => (req: any, res: any, next: any) => void;
67
+ collections: CollectionItem[];
68
+ }
69
+ export declare type EntityType = IWidgetSchema | IItemSchema | IPageSchema | ISrcSetSchema;
70
+ export declare type ReturnDocument = EntityType;
71
+ export interface IModel<T> extends Model<T> {
72
+ paginate: (query: FilterQuery<T>, options?: QueryOptions) => Promise<HydratedDocument<ReturnDocument>[]>;
73
+ }
74
+ export declare type ObjectType = {
75
+ [key: string]: string | number | boolean | null | undefined | string[] | number[] | ObjectType | ObjectType[] | any;
76
+ };
77
+ export interface IDefaultValidations {
78
+ createdBy: string;
79
+ updatedBy: string;
80
+ deletedBy: string;
81
+ deletedAt: string;
82
+ }
83
+ export interface IWidgetDataSchema {
84
+ _id: string;
85
+ code: string;
86
+ collectionName: string;
87
+ collectionItems: string[];
88
+ }
89
+ export declare type IWidgetData = {
90
+ [key: string]: IWidgetDataSchema;
91
+ };
@@ -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,11 @@
1
+ export declare enum ItemsType {
2
+ Image = "Image"
3
+ }
4
+ export declare enum WidgetTypes {
5
+ FixedCard = "FixedCard",
6
+ Carousel = "Carousel"
7
+ }
8
+ export declare enum ItemTypes {
9
+ Web = "Web",
10
+ Mobile = "Mobile"
11
+ }
@@ -0,0 +1,18 @@
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 = exports.WidgetTypes || (exports.WidgetTypes = {}));
13
+ var ItemTypes;
14
+ (function (ItemTypes) {
15
+ ItemTypes["Web"] = "Web";
16
+ ItemTypes["Mobile"] = "Mobile";
17
+ })(ItemTypes = exports.ItemTypes || (exports.ItemTypes = {}));
18
+ //# 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,WAGX;AAHD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;AACvB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
File without changes
@@ -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,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commonExcludedFields = exports.defaults = void 0;
4
+ const constants_1 = require("../constants");
5
+ exports.defaults = {
6
+ logger: console,
7
+ catchAsync: (fn, modal = '') => (req, res, next) => {
8
+ Promise.resolve(fn(req, res, next)).catch((err) => {
9
+ let message = err.message;
10
+ if (message.match(constants_1.REGEXS.OBJECTID_CAST_FAILED)) {
11
+ message = `${modal} not found with given id!`;
12
+ }
13
+ // this.logger.error(err.message);
14
+ res.status(constants_1.internalServerError).json({
15
+ code: constants_1.RESPONSE_CODES.ERROR,
16
+ message,
17
+ data: undefined,
18
+ });
19
+ });
20
+ },
21
+ collections: [],
22
+ };
23
+ exports.commonExcludedFields = {
24
+ __v: 0,
25
+ isDeleted: 0,
26
+ deletedAt: 0,
27
+ };
28
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/defaults.ts"],"names":[],"mappings":";;;AAEA,4CAA2E;AAE9D,QAAA,QAAQ,GAAY;IAC/B,MAAM,EAAE,OAAc;IACtB,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;YACD,kCAAkC;YAClC,GAAG,CAAC,MAAM,CAAC,+BAAmB,CAAC,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,0BAAc,CAAC,KAAK;gBAC1B,OAAO;gBACP,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACH,WAAW,EAAE,EAAsB;CACpC,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACb,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { IWidgetSchema, SrcSetItem } from '../types';
2
+ export declare function appendCollectionData(widgetData: IWidgetSchema[]): Promise<(IWidgetSchema | {
3
+ collectionItems: any;
4
+ items: any;
5
+ name: string;
6
+ code: string;
7
+ autoPlay: boolean;
8
+ isActive: boolean;
9
+ widgetTitle: string;
10
+ webPerRow: number;
11
+ mobilePerRow: number;
12
+ tabletPerRow: number;
13
+ itemsType: import("../types").ItemsType;
14
+ widgetType: import("../types").WidgetTypes;
15
+ collectionName: string;
16
+ _id?: any;
17
+ __v?: any;
18
+ $locals: Record<string, unknown>;
19
+ $op: "save" | "validate" | "remove" | null;
20
+ $where: Record<string, unknown>;
21
+ baseModelName?: string | undefined;
22
+ collection: import("mongoose").Collection<import("bson").Document>;
23
+ db: import("mongoose").Connection;
24
+ errors?: import("mongoose").Error.ValidationError | undefined;
25
+ id?: any;
26
+ isNew: boolean;
27
+ modelName: string;
28
+ schema: import("mongoose").Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, "type", {
29
+ [x: string]: any;
30
+ }>;
31
+ })[]>;
32
+ export declare function buildSrcSetItem(uri: string, setItem: SrcSetItem): string;
33
+ export declare function AddSrcSetsToItems(widgetData: IWidgetSchema): void;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddSrcSetsToItems = exports.buildSrcSetItem = exports.appendCollectionData = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const models_1 = require("../models");
6
+ const defaults_1 = require("./defaults");
7
+ function appendCollectionData(widgetData) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ // reduce widget data to optimize query
10
+ const newData = widgetData.reduce((acc, widget) => {
11
+ if (widget.collectionName) {
12
+ acc[widget.code] = {
13
+ _id: widget._id,
14
+ code: widget.code,
15
+ collectionName: widget.collectionName,
16
+ collectionItems: widget.collectionItems,
17
+ };
18
+ }
19
+ return acc;
20
+ }, {});
21
+ if (Object.keys(newData).length > 0) {
22
+ const aggregationQuery = [
23
+ {
24
+ $match: {
25
+ _id: {
26
+ $in: Object.values(newData).map((item) => item._id),
27
+ },
28
+ },
29
+ },
30
+ {
31
+ // Get only the fields that are not excluded
32
+ $project: {
33
+ _id: 1,
34
+ code: 1,
35
+ },
36
+ },
37
+ ];
38
+ let collectionConfig, aggregationQueryPiplelines;
39
+ Object.keys(newData).forEach((key) => {
40
+ collectionConfig = defaults_1.defaults.collections.find((c) => c.collectionName === newData[key].collectionName);
41
+ // Build piplelines with config
42
+ aggregationQueryPiplelines = [
43
+ {
44
+ $match: Object.assign({ _id: {
45
+ $in: newData[key].collectionItems,
46
+ } }, ((collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.match) || {})),
47
+ },
48
+ {
49
+ $project: Object.assign({}, defaults_1.commonExcludedFields),
50
+ },
51
+ ];
52
+ // add project config if it exists
53
+ if (collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.project)
54
+ aggregationQueryPiplelines.push({
55
+ $project: collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.project,
56
+ });
57
+ // add lookup config if it exists
58
+ if (collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.lookup)
59
+ aggregationQueryPiplelines.push({
60
+ $lookup: collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.lookup,
61
+ });
62
+ // Build Aggregation Query
63
+ aggregationQuery.push({
64
+ $lookup: {
65
+ from: newData[key].collectionName,
66
+ pipeline: aggregationQueryPiplelines,
67
+ as: newData[key].code,
68
+ },
69
+ });
70
+ });
71
+ // getting collection data by populating widget
72
+ let aggregationData = yield models_1.Widget.aggregate(aggregationQuery);
73
+ aggregationData = aggregationData.reduce((acc, aggregation) => {
74
+ acc[aggregation.code] = aggregation[aggregation.code];
75
+ return acc;
76
+ }, {});
77
+ // adding collection data to widgets
78
+ return widgetData.map((widget) => {
79
+ if (aggregationData[widget.code]) {
80
+ return Object.assign(Object.assign({}, widget), { collectionItems: aggregationData[widget.code] });
81
+ }
82
+ return widget;
83
+ });
84
+ }
85
+ // returning widget data as it is if they do not have dynamic collection
86
+ return widgetData;
87
+ });
88
+ }
89
+ exports.appendCollectionData = appendCollectionData;
90
+ function buildSrcSetItem(uri, setItem) {
91
+ const imageItemArr = (uri === null || uri === void 0 ? void 0 : uri.split('/')) || [];
92
+ imageItemArr.splice(imageItemArr.length - 1, 0, `${setItem.width}x${setItem.height}`);
93
+ return imageItemArr.join('/');
94
+ }
95
+ exports.buildSrcSetItem = buildSrcSetItem;
96
+ function AddSrcSetsToItems(widgetData) {
97
+ if (Array.isArray(widgetData.items) && widgetData.items.length > 0) {
98
+ widgetData.items.forEach((item) => {
99
+ if (Array.isArray(item.srcset) && item.srcset.length > 0 && item.image) {
100
+ item.srcSets = item.srcset.reduce((strArr, setItem) => {
101
+ const imageUri = buildSrcSetItem(item.image.uri, setItem);
102
+ strArr.push(`${imageUri} ${setItem.screenSize}w`);
103
+ return strArr;
104
+ }, []);
105
+ item.srcSets = item.srcSets.join(', ');
106
+ }
107
+ });
108
+ }
109
+ }
110
+ exports.AddSrcSetsToItems = AddSrcSetsToItems;
111
+ //# 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,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;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inValidParam = exports.recordNotFound = exports.createdDocumentResponse = exports.successResponse = exports.failureResponse = void 0;
4
+ const constants_1 = require("../constants");
5
+ const failureResponse = (data, res) => {
6
+ let i = 0;
7
+ if (data.name === 'ValidationError') {
8
+ Object.keys(data.errors).forEach((key) => {
9
+ if (i !== 1) {
10
+ data.message = data.errors[key].message;
11
+ }
12
+ i++;
13
+ });
14
+ }
15
+ res.message = data.message;
16
+ return res.status(constants_1.validationError).json({
17
+ code: constants_1.RESPONSE_CODES.ERROR,
18
+ message: data.message ? data.message : data,
19
+ });
20
+ };
21
+ exports.failureResponse = failureResponse;
22
+ const successResponse = (data, res) => {
23
+ return res.status(constants_1.success).json({
24
+ code: constants_1.RESPONSE_CODES.DEFAULT,
25
+ message: res.message,
26
+ data: data,
27
+ });
28
+ };
29
+ exports.successResponse = successResponse;
30
+ const createdDocumentResponse = (data, res) => {
31
+ return res.status(constants_1.create).json({
32
+ code: constants_1.RESPONSE_CODES.DEFAULT,
33
+ message: res.message,
34
+ data: data,
35
+ });
36
+ };
37
+ exports.createdDocumentResponse = createdDocumentResponse;
38
+ const recordNotFound = (res) => {
39
+ return res.status(constants_1.success).json({
40
+ code: constants_1.RESPONSE_CODES.DEFAULT,
41
+ message: res.message,
42
+ data: {},
43
+ });
44
+ };
45
+ exports.recordNotFound = recordNotFound;
46
+ const inValidParam = (message, res) => {
47
+ /* eslint-disable no-useless-escape */
48
+ message = message.replace(/\"/g, '');
49
+ res.message = message;
50
+ return res.status(constants_1.validationError).json({
51
+ code: constants_1.RESPONSE_CODES.ERROR,
52
+ message: message,
53
+ data: undefined,
54
+ });
55
+ };
56
+ exports.inValidParam = inValidParam;
57
+ //# sourceMappingURL=responseHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseHandlers.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/responseHandlers.ts"],"names":[],"mappings":";;;AAAA,4CAAgF;AAGzE,MAAM,eAAe,GAAG,CAAC,IAAS,EAAE,GAAc,EAAE,EAAE;IAC5D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;aACxC;YACD,CAAC,EAAE,CAAC;QACL,CAAC,CAAC,CAAC;KACH;IACD,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,2BAAe,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,EAAE,0BAAc,CAAC,KAAK;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAC3C,CAAC,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B;AAEK,MAAM,eAAe,GAAG,CAAC,IAAS,EAAE,GAAc,EAAE,EAAE;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAO,CAAC,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,0BAAc,CAAC,OAAO;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,IAAI;KACV,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAS,EAAE,GAAc,EAAE,EAAE;IACpE,OAAO,GAAG,CAAC,MAAM,CAAC,kBAAM,CAAC,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,0BAAc,CAAC,OAAO;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,IAAI;KACV,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,uBAAuB,2BAMlC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAc,EAAE,EAAE;IAChD,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAO,CAAC,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,0BAAc,CAAC,OAAO;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,EAAE;KACR,CAAC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,MAAM,YAAY,GAAG,CAAC,OAAY,EAAE,GAAc,EAAE,EAAE;IAC5D,sCAAsC;IACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC,MAAM,CAAC,2BAAe,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,EAAE,0BAAc,CAAC,KAAK;QAC1B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAS;KACf,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB"}
@@ -0,0 +1,4 @@
1
+ import { NextFunction } from 'express';
2
+ import { IRequest, IResponse } from './../types';
3
+ declare const validate: (validator: any) => (req: IRequest, res: IResponse, next: NextFunction) => Promise<void>;
4
+ export default validate;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const defaults_1 = require("./defaults");
5
+ const responseHandlers_1 = require("./responseHandlers");
6
+ const validate = (validator) => {
7
+ return function (req, res, next) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ try {
10
+ req.body = yield validator.validateAsync(req.body);
11
+ next();
12
+ }
13
+ catch (err) {
14
+ defaults_1.defaults.logger.error('ValidationError', err);
15
+ if (err.isJoi)
16
+ (0, responseHandlers_1.inValidParam)(err.message, res);
17
+ else
18
+ (0, responseHandlers_1.failureResponse)(err.message, res);
19
+ }
20
+ });
21
+ };
22
+ };
23
+ exports.default = validate;
24
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../libs/node/src/utils/validate.ts"],"names":[],"mappings":";;;AAIA,yCAAsC;AACtC,yDAAmE;AAEnE,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAE,EAAE;IAClC,OAAO,UAAgB,GAAa,EAAE,GAAc,EAAE,IAAkB;;YACtE,IAAI;gBACF,GAAG,CAAC,IAAI,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,GAAG,EAAE;gBACZ,mBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAK,GAAuB,CAAC,KAAK;oBAChC,IAAA,+BAAY,EAAE,GAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;oBACvC,IAAA,kCAAe,EAAE,GAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;aACnD;QACH,CAAC;KAAA,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import joi from 'joi';
2
+ import { IItemSchema, IDefaultValidations } from '../../types';
3
+ declare type ItemValidation = IItemSchema & IDefaultValidations;
4
+ export declare const create: joi.ObjectSchema<ItemValidation>;
5
+ export declare const update: joi.ObjectSchema<ItemValidation>;
6
+ export declare const list: joi.ObjectSchema<any>;
7
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.list = exports.update = exports.create = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const joi_1 = tslib_1.__importDefault(require("joi"));
6
+ const types_1 = require("../../types");
7
+ const srcset = joi_1.default.object().keys({
8
+ screenSize: joi_1.default.number().required(),
9
+ width: joi_1.default.number().required(),
10
+ height: joi_1.default.number().required(),
11
+ });
12
+ exports.create = joi_1.default.object({
13
+ widgetId: joi_1.default.string().required(),
14
+ title: joi_1.default.string().required(),
15
+ altText: joi_1.default.string().optional(),
16
+ link: joi_1.default.string().required(),
17
+ sequence: joi_1.default.number().optional(),
18
+ srcset: joi_1.default.array().items(srcset),
19
+ img: joi_1.default.string().allow(null).optional(),
20
+ itemType: joi_1.default
21
+ .string()
22
+ .valid(...Object.values(types_1.ItemTypes))
23
+ .optional()
24
+ .default(types_1.ItemTypes.Web),
25
+ createdBy: joi_1.default.any().optional(),
26
+ updatedBy: joi_1.default.any().optional(),
27
+ deletedBy: joi_1.default.any().optional(),
28
+ deletedAt: joi_1.default.any().optional(),
29
+ });
30
+ exports.update = joi_1.default.object({
31
+ widgetId: joi_1.default.string().required(),
32
+ title: joi_1.default.string().required(),
33
+ altText: joi_1.default.string().optional(),
34
+ link: joi_1.default.string().required(),
35
+ sequence: joi_1.default.number().optional(),
36
+ img: joi_1.default.string().allow(null).optional(),
37
+ srcset: joi_1.default.array().items(srcset),
38
+ itemType: joi_1.default
39
+ .string()
40
+ .valid(...Object.values(types_1.ItemTypes))
41
+ .optional(),
42
+ createdBy: joi_1.default.any().optional(),
43
+ updatedBy: joi_1.default.any().optional(),
44
+ deletedBy: joi_1.default.any().optional(),
45
+ deletedAt: joi_1.default.any().optional(),
46
+ });
47
+ exports.list = joi_1.default.object({
48
+ search: joi_1.default.string().allow('').replace(/\s+/g, '_').default(''),
49
+ });
50
+ //# sourceMappingURL=item.js.map