@knovator/pagecreator-node 0.0.6 → 0.2.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.
- package/README.md +230 -161
- package/package.json +3 -6
- package/src/constants/index.ts +26 -0
- package/src/controllers/ItemController.ts +139 -0
- package/src/controllers/PageController.ts +65 -0
- package/src/controllers/UserController.ts +265 -0
- package/src/controllers/WidgetController.ts +165 -0
- package/src/index.ts +29 -0
- package/src/models/Item.ts +29 -0
- package/src/models/Page.ts +17 -0
- package/src/models/SrcSet.ts +16 -0
- package/src/models/Widget.ts +44 -0
- package/src/models/index.ts +6 -0
- package/src/plugins/softDelete.ts +84 -0
- package/src/routes/ItemRoute.ts +32 -0
- package/src/routes/PageRoute.ts +31 -0
- package/src/routes/UserRoute.ts +32 -0
- package/src/routes/WidgetRoute.ts +56 -0
- package/src/services/dbService.ts +82 -0
- package/src/types/{IRequest.d.ts → IRequest.ts} +4 -3
- package/src/types/{IResponse.d.ts → IResponse.ts} +4 -3
- package/src/types/{Router.d.ts → Router.ts} +2 -1
- package/src/types/common.ts +130 -0
- package/src/types/enums.ts +13 -0
- package/src/types/{index.d.ts → index.ts} +0 -0
- package/src/utils/defaults.ts +30 -0
- package/src/utils/helper.ts +133 -0
- package/src/utils/responseHandlers.ts +54 -0
- package/src/utils/validate.ts +22 -0
- package/src/utils/validations/item.ts +51 -0
- package/src/utils/validations/page.ts +59 -0
- package/src/utils/validations/user.ts +9 -0
- package/src/utils/validations/widget.ts +118 -0
- package/src/constants/index.d.ts +0 -16
- package/src/constants/index.js +0 -30
- package/src/constants/index.js.map +0 -1
- package/src/controllers/PageController.d.ts +0 -4
- package/src/controllers/PageController.js +0 -61
- package/src/controllers/PageController.js.map +0 -1
- package/src/controllers/TileController.d.ts +0 -4
- package/src/controllers/TileController.js +0 -45
- package/src/controllers/TileController.js.map +0 -1
- package/src/controllers/UserController.d.ts +0 -2
- package/src/controllers/UserController.js +0 -174
- package/src/controllers/UserController.js.map +0 -1
- package/src/controllers/WidgetController.d.ts +0 -8
- package/src/controllers/WidgetController.js +0 -129
- package/src/controllers/WidgetController.js.map +0 -1
- package/src/index.d.ts +0 -8
- package/src/index.js +0 -29
- package/src/index.js.map +0 -1
- package/src/models/Page.d.ts +0 -3
- package/src/models/Page.js +0 -16
- package/src/models/Page.js.map +0 -1
- package/src/models/Tile.d.ts +0 -3
- package/src/models/Tile.js +0 -29
- package/src/models/Tile.js.map +0 -1
- package/src/models/Widget.d.ts +0 -3
- package/src/models/Widget.js +0 -41
- package/src/models/Widget.js.map +0 -1
- package/src/models/index.d.ts +0 -4
- package/src/models/index.js +0 -11
- package/src/models/index.js.map +0 -1
- package/src/plugins/softDelete.d.ts +0 -7
- package/src/plugins/softDelete.js +0 -64
- package/src/plugins/softDelete.js.map +0 -1
- package/src/routes/PageRoute.d.ts +0 -3
- package/src/routes/PageRoute.js +0 -30
- package/src/routes/PageRoute.js.map +0 -1
- package/src/routes/TileRoute.d.ts +0 -3
- package/src/routes/TileRoute.js +0 -31
- package/src/routes/TileRoute.js.map +0 -1
- package/src/routes/UserRoute.d.ts +0 -3
- package/src/routes/UserRoute.js +0 -22
- package/src/routes/UserRoute.js.map +0 -1
- package/src/routes/WidgetRoute.d.ts +0 -3
- package/src/routes/WidgetRoute.js +0 -47
- package/src/routes/WidgetRoute.js.map +0 -1
- package/src/services/dbService.d.ts +0 -8
- package/src/services/dbService.js +0 -60
- package/src/services/dbService.js.map +0 -1
- package/src/types/IRequest.js +0 -3
- package/src/types/IRequest.js.map +0 -1
- package/src/types/IResponse.js +0 -3
- package/src/types/IResponse.js.map +0 -1
- package/src/types/Router.js +0 -3
- package/src/types/Router.js.map +0 -1
- package/src/types/common.d.ts +0 -66
- package/src/types/common.js +0 -3
- package/src/types/common.js.map +0 -1
- package/src/types/enums.d.ts +0 -11
- package/src/types/enums.js +0 -18
- package/src/types/enums.js.map +0 -1
- package/src/types/index.js +0 -9
- package/src/types/index.js.map +0 -1
- package/src/utils/defaults.d.ts +0 -2
- package/src/utils/defaults.js +0 -23
- package/src/utils/defaults.js.map +0 -1
- package/src/utils/responseHandlers.d.ts +0 -6
- package/src/utils/responseHandlers.js +0 -57
- package/src/utils/responseHandlers.js.map +0 -1
- package/src/utils/validate.d.ts +0 -4
- package/src/utils/validate.js +0 -24
- package/src/utils/validate.js.map +0 -1
- package/src/utils/validations/page.d.ts +0 -7
- package/src/utils/validations/page.js +0 -58
- package/src/utils/validations/page.js.map +0 -1
- package/src/utils/validations/tile.d.ts +0 -7
- package/src/utils/validations/tile.js +0 -43
- package/src/utils/validations/tile.js.map +0 -1
- package/src/utils/validations/user.d.ts +0 -3
- package/src/utils/validations/user.js +0 -12
- package/src/utils/validations/user.js.map +0 -1
- package/src/utils/validations/widget.d.ts +0 -9
- package/src/utils/validations/widget.js +0 -108
- package/src/utils/validations/widget.js.map +0 -1
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPageData = exports.getWidgetData = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const joi_1 = tslib_1.__importDefault(require("joi"));
|
|
6
|
-
exports.getWidgetData = joi_1.default.object({
|
|
7
|
-
code: joi_1.default.string().required(),
|
|
8
|
-
});
|
|
9
|
-
exports.getPageData = joi_1.default.object({
|
|
10
|
-
code: joi_1.default.string().required(),
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../../libs/node/src/utils/validations/user.ts"],"names":[],"mappings":";;;;AAAA,sDAAsB;AAET,QAAA,aAAa,GAAG,aAAG,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,aAAG,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import joi from 'joi';
|
|
2
|
-
import { IWidgetSchema, IDefaultValidations } from '../../types';
|
|
3
|
-
declare type TileValidation = IWidgetSchema & IDefaultValidations;
|
|
4
|
-
export declare const create: joi.ObjectSchema<TileValidation>;
|
|
5
|
-
export declare const update: joi.ObjectSchema<TileValidation>;
|
|
6
|
-
export declare const list: joi.ObjectSchema<any>;
|
|
7
|
-
export declare const partialUpdate: joi.ObjectSchema<any>;
|
|
8
|
-
export declare const getCollectionData: joi.ObjectSchema<any>;
|
|
9
|
-
export {};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCollectionData = exports.partialUpdate = 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 models_1 = require("../../models");
|
|
7
|
-
const defaults_1 = require("../defaults");
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
|
-
const dbService_1 = require("../../services/dbService");
|
|
10
|
-
const types_1 = require("../../types");
|
|
11
|
-
const checkUnique = (value) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
-
let result;
|
|
13
|
-
try {
|
|
14
|
-
// throws error if document found
|
|
15
|
-
result = yield (0, dbService_1.getOne)(models_1.Widget, {
|
|
16
|
-
code: value,
|
|
17
|
-
});
|
|
18
|
-
// eslint-disable-next-line no-empty
|
|
19
|
-
}
|
|
20
|
-
catch (e) { }
|
|
21
|
-
if (result) {
|
|
22
|
-
throw new Error(constants_1.VALIDATION.WIDGET_EXISTS);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
exports.create = joi_1.default.object({
|
|
26
|
-
name: joi_1.default.string().required(),
|
|
27
|
-
selectionTitle: joi_1.default.string().required(),
|
|
28
|
-
code: joi_1.default
|
|
29
|
-
.string()
|
|
30
|
-
.uppercase()
|
|
31
|
-
.replace(/\s+/g, '_')
|
|
32
|
-
.external(checkUnique)
|
|
33
|
-
.required(),
|
|
34
|
-
isActive: joi_1.default.boolean().default(true).optional(),
|
|
35
|
-
autoPlay: joi_1.default.boolean().default(false).optional(),
|
|
36
|
-
webPerRow: joi_1.default.number().allow(null).optional(),
|
|
37
|
-
mobilePerRow: joi_1.default.number().allow(null).optional(),
|
|
38
|
-
tabletPerRow: joi_1.default.number().allow(null).optional(),
|
|
39
|
-
collectionName: joi_1.default.string().optional(),
|
|
40
|
-
collectionItems: joi_1.default.array().items(joi_1.default.string()).optional(),
|
|
41
|
-
widgetType: joi_1.default
|
|
42
|
-
.string()
|
|
43
|
-
.custom((value) => {
|
|
44
|
-
if (Object.keys(types_1.WidgetType).includes(value)) {
|
|
45
|
-
return value;
|
|
46
|
-
}
|
|
47
|
-
const collectionIndex = defaults_1.defaults.collections.findIndex((collection) => collection.collectionName === value);
|
|
48
|
-
if (collectionIndex > -1) {
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
throw new Error(`${value} is not a valid widget type`);
|
|
52
|
-
})
|
|
53
|
-
.optional()
|
|
54
|
-
.default(types_1.WidgetType.Image),
|
|
55
|
-
selectionType: joi_1.default
|
|
56
|
-
.string()
|
|
57
|
-
.valid(...Object.values(types_1.SelectionTypes))
|
|
58
|
-
.optional()
|
|
59
|
-
.default(types_1.SelectionTypes.FixedCard),
|
|
60
|
-
createdBy: joi_1.default.any().optional(),
|
|
61
|
-
updatedBy: joi_1.default.any().optional(),
|
|
62
|
-
deletedBy: joi_1.default.any().optional(),
|
|
63
|
-
deletedAt: joi_1.default.any().optional(),
|
|
64
|
-
});
|
|
65
|
-
exports.update = joi_1.default.object({
|
|
66
|
-
name: joi_1.default.string().required(),
|
|
67
|
-
selectionTitle: joi_1.default.string().required(),
|
|
68
|
-
isActive: joi_1.default.boolean().optional(),
|
|
69
|
-
webPerRow: joi_1.default.number().allow(null).optional(),
|
|
70
|
-
mobilePerRow: joi_1.default.number().allow(null).optional(),
|
|
71
|
-
tabletPerRow: joi_1.default.number().allow(null).optional(),
|
|
72
|
-
autoPlay: joi_1.default.boolean().default(false).optional(),
|
|
73
|
-
collectionItems: joi_1.default.array().items(joi_1.default.string()).optional(),
|
|
74
|
-
selectionType: joi_1.default
|
|
75
|
-
.string()
|
|
76
|
-
.valid(...Object.values(types_1.SelectionTypes))
|
|
77
|
-
.optional(),
|
|
78
|
-
createdBy: joi_1.default.any().optional(),
|
|
79
|
-
updatedBy: joi_1.default.any().optional(),
|
|
80
|
-
deletedBy: joi_1.default.any().optional(),
|
|
81
|
-
deletedAt: joi_1.default.any().optional(),
|
|
82
|
-
});
|
|
83
|
-
exports.list = joi_1.default.object({
|
|
84
|
-
search: joi_1.default.string().allow('').optional().default(''),
|
|
85
|
-
options: joi_1.default
|
|
86
|
-
.object({
|
|
87
|
-
// sort: joi.alternatives().try(joi.object(), joi.string()).optional(),
|
|
88
|
-
// populate: joi.array().items().optional(),
|
|
89
|
-
offset: joi_1.default.number().optional(),
|
|
90
|
-
page: joi_1.default.number().optional(),
|
|
91
|
-
limit: joi_1.default.number().optional(),
|
|
92
|
-
})
|
|
93
|
-
.default({}),
|
|
94
|
-
isActive: joi_1.default.boolean().optional(),
|
|
95
|
-
all: joi_1.default.boolean().default(false),
|
|
96
|
-
});
|
|
97
|
-
exports.partialUpdate = joi_1.default.object({
|
|
98
|
-
isActive: joi_1.default.boolean().optional(),
|
|
99
|
-
createdBy: joi_1.default.any().optional(),
|
|
100
|
-
updatedBy: joi_1.default.any().optional(),
|
|
101
|
-
deletedBy: joi_1.default.any().optional(),
|
|
102
|
-
deletedAt: joi_1.default.any().optional(),
|
|
103
|
-
});
|
|
104
|
-
exports.getCollectionData = joi_1.default.object({
|
|
105
|
-
collectionName: joi_1.default.string().required(),
|
|
106
|
-
search: joi_1.default.string().allow('').optional().default(''),
|
|
107
|
-
});
|
|
108
|
-
//# sourceMappingURL=widget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../../../../../libs/node/src/utils/validations/widget.ts"],"names":[],"mappings":"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"}
|