@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.
- package/package.json +4 -2
- package/src/constants/index.d.ts +20 -0
- package/src/constants/index.js +34 -0
- package/src/constants/index.js.map +1 -0
- package/src/controllers/PageController.d.ts +4 -0
- package/src/controllers/PageController.js +84 -0
- package/src/controllers/PageController.js.map +1 -0
- package/src/controllers/TabController.d.ts +4 -0
- package/src/controllers/TabController.js +46 -0
- package/src/controllers/TabController.js.map +1 -0
- package/src/controllers/UserController.d.ts +2 -0
- package/src/controllers/UserController.js +65 -0
- package/src/controllers/UserController.js.map +1 -0
- package/src/controllers/WidgetController.d.ts +10 -0
- package/src/controllers/WidgetController.js +329 -0
- package/src/controllers/WidgetController.js.map +1 -0
- package/src/index.d.ts +8 -0
- package/src/index.js +48 -0
- package/src/index.js.map +1 -0
- package/src/models/Item.d.ts +30 -0
- package/src/models/Item.js +50 -0
- package/src/models/Item.js.map +1 -0
- package/src/models/Page.d.ts +30 -0
- package/src/models/Page.js +23 -0
- package/src/models/Page.js.map +1 -0
- package/src/models/SrcSet.d.ts +30 -0
- package/src/models/SrcSet.js +17 -0
- package/src/models/SrcSet.js.map +1 -0
- package/src/models/Tab.d.ts +30 -0
- package/src/models/Tab.js +28 -0
- package/src/models/Tab.js.map +1 -0
- package/src/models/Widget.d.ts +30 -0
- package/src/models/Widget.js +63 -0
- package/src/models/Widget.js.map +1 -0
- package/src/models/{index.ts → index.d.ts} +1 -13
- package/src/models/index.js +19 -0
- package/src/models/index.js.map +1 -0
- package/src/plugins/softDelete.d.ts +7 -0
- package/src/plugins/softDelete.js +64 -0
- package/src/plugins/softDelete.js.map +1 -0
- package/src/routes/PageRoute.d.ts +3 -0
- package/src/routes/PageRoute.js +30 -0
- package/src/routes/PageRoute.js.map +1 -0
- package/src/routes/UserRoute.d.ts +3 -0
- package/src/routes/UserRoute.js +23 -0
- package/src/routes/UserRoute.js.map +1 -0
- package/src/routes/WidgetRoute.d.ts +3 -0
- package/src/routes/WidgetRoute.js +68 -0
- package/src/routes/WidgetRoute.js.map +1 -0
- package/src/services/dataService.d.ts +9 -0
- package/src/services/dataService.js +403 -0
- package/src/services/dataService.js.map +1 -0
- package/src/services/dbService.d.ts +16 -0
- package/src/services/dbService.js +88 -0
- package/src/services/dbService.js.map +1 -0
- package/src/types/{IRequest.ts → IRequest.d.ts} +3 -4
- package/src/types/IRequest.js +3 -0
- package/src/types/IRequest.js.map +1 -0
- package/src/types/{IResponse.ts → IResponse.d.ts} +3 -4
- package/src/types/IResponse.js +3 -0
- package/src/types/IResponse.js.map +1 -0
- package/src/types/{Router.ts → Router.d.ts} +1 -2
- package/src/types/Router.js +3 -0
- package/src/types/Router.js.map +1 -0
- package/src/types/common.d.ts +142 -0
- package/src/types/common.js +3 -0
- package/src/types/common.js.map +1 -0
- package/src/types/enums.d.ts +14 -0
- package/src/types/enums.js +21 -0
- package/src/types/enums.js.map +1 -0
- package/src/types/index.js +9 -0
- package/src/types/index.js.map +1 -0
- package/src/utils/defaults.d.ts +7 -0
- package/src/utils/defaults.js +41 -0
- package/src/utils/defaults.js.map +1 -0
- package/src/utils/helper.d.ts +7 -0
- package/src/utils/helper.js +225 -0
- package/src/utils/helper.js.map +1 -0
- package/src/utils/redis.d.ts +3 -0
- package/src/utils/redis.js +59 -0
- package/src/utils/redis.js.map +1 -0
- package/src/utils/responseHandlers.d.ts +6 -0
- package/src/utils/responseHandlers.js +57 -0
- package/src/utils/responseHandlers.js.map +1 -0
- package/src/utils/validate.d.ts +4 -0
- package/src/utils/validate.js +24 -0
- package/src/utils/validate.js.map +1 -0
- package/src/utils/validations/page.d.ts +7 -0
- package/src/utils/validations/page.js +51 -0
- package/src/utils/validations/page.js.map +1 -0
- package/src/utils/validations/tab.d.ts +6 -0
- package/src/utils/validations/tab.js +26 -0
- package/src/utils/validations/tab.js.map +1 -0
- package/src/utils/validations/user.d.ts +3 -0
- package/src/utils/validations/user.js +13 -0
- package/src/utils/validations/user.js.map +1 -0
- package/src/utils/validations/widget.d.ts +9 -0
- package/src/utils/validations/widget.js +153 -0
- package/src/utils/validations/widget.js.map +1 -0
- package/src/constants/index.ts +0 -30
- package/src/controllers/PageController.ts +0 -88
- package/src/controllers/TabController.ts +0 -47
- package/src/controllers/UserController.ts +0 -69
- package/src/controllers/WidgetController.ts +0 -420
- package/src/index.ts +0 -59
- package/src/models/Item.ts +0 -53
- package/src/models/Page.ts +0 -22
- package/src/models/SrcSet.ts +0 -16
- package/src/models/Tab.ts +0 -28
- package/src/models/Widget.ts +0 -65
- package/src/plugins/softDelete.ts +0 -84
- package/src/routes/PageRoute.ts +0 -30
- package/src/routes/UserRoute.ts +0 -32
- package/src/routes/WidgetRoute.ts +0 -77
- package/src/services/dataService.ts +0 -475
- package/src/services/dbService.ts +0 -102
- package/src/types/common.ts +0 -172
- package/src/types/enums.ts +0 -16
- package/src/utils/defaults.ts +0 -41
- package/src/utils/helper.ts +0 -285
- package/src/utils/redis.ts +0 -57
- package/src/utils/responseHandlers.ts +0 -60
- package/src/utils/validate.ts +0 -22
- package/src/utils/validations/page.ts +0 -52
- package/src/utils/validations/tab.ts +0 -26
- package/src/utils/validations/user.ts +0 -10
- package/src/utils/validations/widget.ts +0 -169
- /package/src/types/{index.ts → index.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRequest.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/IRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../../../../libs/node/src/types/IResponse.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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,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":";;;;AAAA,uCAAwD;AACxD,yCAA4D;AAQ5D,SAAsB,oBAAoB,CAAC,UAA2B,EAAE,MAAc;;QACpF,MAAM,EAAE,MAAM,EAAE,GAAE,MAAM,CAAC;QACzB,uCAAuC;QACvC,MAAM,OAAO,GAAgB,UAAU,CAAC,MAAM,CAC5C,CAAC,GAAgB,EAAE,MAAqB,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,cAAc,EAAE;gBACzB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;aACH;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,+BAA+B,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC3E,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,+CAA+C;gBAC/C,IAAI,eAAe,GAAQ,MAAM,MAAM,CAAC,SAAS,CAC/C,+BAA+B,CAChC,CAAC;gBACF,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,WAAgB,EAAE,EAAE;oBACtE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACtD,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,oCAAoC;gBACpC,6DAA6D;gBAC7D,aAAa;gBACb,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAqB,EAAE,EAAE;oBACpD,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAChC,uCACK,MAAM,KACT,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAC7C;qBACH;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;aACJ;YACD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,mBAAmB,GAAQ,MAAM,MAAM,CAAC,SAAS,CACnD,oBAAoB,CACrB,CAAC;gBACF,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAC9C,CAAC,GAAQ,EAAE,WAAgB,EAAE,EAAE;oBAC7B,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;wBAC/B,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACxD,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAAE,CACH,CAAC;gBACF,oCAAoC;gBACpC,6DAA6D;gBAC7D,aAAa;gBACb,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBACrC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;wBAAE,OAAO,MAAM,CAAC;oBACrD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAChE,CAAC,GAAQ,EAAE,IAAS,EAAE,EAAE;wBACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;wBACrB,OAAO,GAAG,CAAC;oBACb,CAAC,EACD,EAAE,CACH,CAAC;oBACF,uCACK,MAAM,KACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;4BAChC,OAAO;gCACL,IAAI,EAAE,OAAO,CAAC,IAAI;gCAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gCACpB,eAAe,EAAE,OAAO,CAAC,eAAe;qCACrC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;qCACvD,MAAM,CAAC,OAAO,CAAC;6BACnB,CAAC;wBACJ,CAAC,CAAC,IACF;gBACJ,CAAC,CAAC,CAAC;aACJ;SACF;QACD,wEAAwE;QACxE,OAAO,UAAU,CAAC;IACpB,CAAC;CAAA;AApFD,oDAoFC;AAED,SAAS,yBAAyB,CAAC,mBAAgC;IACjE,MAAM,gBAAgB,GAAQ;QAC5B;YACE,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CACzC,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CACtC;iBACF;aACF;SACF;QACD;YACE,4CAA4C;YAC5C,QAAQ,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;aACR;SACF;KACF,CAAC;IACF,IAAI,gBAAgB,CAAC;IACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QACvD,IACE,mBAAmB,CAAC,GAAG,CAAC,CAAC,eAAe;YACxC,mBAAmB,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EACnD;YACA,MAAM,0BAA0B,GAAU,EAAE,CAAC;YAC7C,gBAAgB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAC,cAAc,CACpE,CAAC;YACF,IACE,KAAK,CAAC,OAAO,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,CAAC;iBAC7C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,CAAC,MAAM,CAAA,EACrC;gBACA,0BAA0B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;aACnE;YACD,MAAM,GAAG,GAAG,IAAA,6BAAqB,EAC/B,mBAAmB,CAAC,GAAG,CAAC,CAAC,eAAe,CACzC,CAAC;YACF,+BAA+B;YAC/B,0BAA0B,CAAC,IAAI,CAC7B,GAAG;gBACD;oBACE,MAAM,kBACJ,GAAG,EAAE;4BACH,GAAG,EAAE,GAAG;yBACT,IACE,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,KAAI,EAAE,CAAC,CACnC;iBACF;gBACD;oBACE,QAAQ,oBACH,+BAAoB,CACxB;iBACF;gBACD,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;gBAC7D,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;aAC1B,CACF,CAAC;YACF,0BAA0B;YAC1B,gBAAgB,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE;oBACP,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,cAAc;oBAC7C,QAAQ,EAAE,0BAA0B;oBACpC,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI;iBAClC;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,4BAA4B,CAAC,mBAAgC;IACpE,MAAM,gBAAgB,GAAQ;QAC5B;YACE,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CACzC,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CACtC;iBACF;aACF;SACF;QACD;YACE,4CAA4C;YAC5C,QAAQ,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;aACR;SACF;KACF,CAAC;IACF,IAAI,gBAAgB,CAAC;IACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QACvD,IACE,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI;YAC7B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACxC;YACA,MAAM,0BAA0B,GAAU,EAAE,CAAC;YAC7C,gBAAgB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAC,cAAc,CACpE,CAAC;YACF,IACE,KAAK,CAAC,OAAO,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,CAAC;iBAC7C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,CAAC,MAAM,CAAA,EACrC;gBACA,0BAA0B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;aACnE;YACD,+BAA+B;YAC/B,0BAA0B,CAAC,IAAI,CAC7B,GAAG;gBACD;oBACE,MAAM,kBACJ,GAAG,EAAE;4BACH,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CACvC,CAAC,GAAqB,EAAE,OAAO,EAAE,EAAE;gCACjC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAA,6BAAqB,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC5D,OAAO,GAAG,CAAC;4BACb,CAAC,EACD,EAAE,CACH;yBACF,IACE,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,KAAI,EAAE,CAAC,CACnC;iBACF;gBACD;oBACE,QAAQ,oBACH,+BAAoB,CACxB;iBACF;aACF,CACF,CAAC;YACF,0BAA0B;YAC1B,gBAAgB,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE;oBACP,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,cAAc;oBAC7C,QAAQ,EAAE,0BAA0B;oBACpC,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI;iBAClC;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAE,OAAmB;IAC9D,MAAM,YAAY,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;IAC3C,YAAY,CAAC,MAAM,CACjB,YAAY,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC,EACD,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CACrC,CAAC;IACF,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AARD,0CAQC;AAED,SAAgB,iBAAiB,CAAC,UAAyB;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAClE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAC/B,CAAC,MAAgB,EAAE,OAAmB,EAAE,EAAE;oBACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;oBAClD,OAAO,MAAM,CAAC;gBAChB,CAAC,EACD,EAAE,CACH,CAAC;gBAEF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAjBD,8CAiBC;AAEM,MAAM,kBAAkB,GAAG,CAAC,cAAsB,EAAE,MAAc,EAAE,EAAE;IAC3E,IAAI,eAAe,GAAQ,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,eAAe;QAAE,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChH,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,MAAM,GAAG,IAAI,iBAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,eAAe,GAAG,IAAA,gBAAK,EAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;KACjE;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEK,MAAM,qBAAqB,GAAG,CAAC,eAAsB,EAAE,EAAE;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9E,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,IAAI,YAAY,gBAAK,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC"}
|
|
@@ -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;
|