@servicelabsco/slabs-access-manager 2.0.11 → 2.0.12
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/dist/access/controllers/business.preference.controller.js.map +1 -1
- package/dist/access/controllers/developer.menu.controller.d.ts +80 -0
- package/dist/access/controllers/developer.menu.controller.js +157 -0
- package/dist/access/controllers/developer.menu.controller.js.map +1 -0
- package/dist/access/controllers/index.d.ts +1 -0
- package/dist/access/controllers/index.js +1 -0
- package/dist/access/controllers/index.js.map +1 -1
- package/dist/access/controllers/ui.action.controller.d.ts +47 -0
- package/dist/access/controllers/ui.action.controller.js +49 -0
- package/dist/access/controllers/ui.action.controller.js.map +1 -1
- package/dist/access/dtos/business.menu.layout.attributes.dto.d.ts +3 -0
- package/dist/access/dtos/business.menu.layout.attributes.dto.js +8 -0
- package/dist/access/dtos/business.menu.layout.attributes.dto.js.map +1 -0
- package/dist/access/dtos/business.ui.action.attributes.dto.d.ts +3 -0
- package/dist/access/dtos/business.ui.action.attributes.dto.js +8 -0
- package/dist/access/dtos/business.ui.action.attributes.dto.js.map +1 -0
- package/dist/access/dtos/developer.business.query.dto.d.ts +3 -0
- package/dist/access/dtos/developer.business.query.dto.js +25 -0
- package/dist/access/dtos/developer.business.query.dto.js.map +1 -0
- package/dist/access/dtos/developer.business.search.dto.d.ts +4 -0
- package/dist/access/dtos/developer.business.search.dto.js +32 -0
- package/dist/access/dtos/developer.business.search.dto.js.map +1 -0
- package/dist/access/dtos/index.d.ts +8 -0
- package/dist/access/dtos/index.js +8 -0
- package/dist/access/dtos/index.js.map +1 -1
- package/dist/access/dtos/menu.layout.dto.d.ts +7 -0
- package/dist/access/dtos/menu.layout.dto.js +43 -0
- package/dist/access/dtos/menu.layout.dto.js.map +1 -0
- package/dist/access/dtos/set.active.dto.d.ts +3 -0
- package/dist/access/dtos/set.active.dto.js +23 -0
- package/dist/access/dtos/set.active.dto.js.map +1 -0
- package/dist/access/dtos/set.menus.active.dto.d.ts +7 -0
- package/dist/access/dtos/set.menus.active.dto.js +41 -0
- package/dist/access/dtos/set.menus.active.dto.js.map +1 -0
- package/dist/access/dtos/set.ui.action.businesses.dto.d.ts +3 -0
- package/dist/access/dtos/set.ui.action.businesses.dto.js +26 -0
- package/dist/access/dtos/set.ui.action.businesses.dto.js.map +1 -0
- package/dist/access/entities/business.menu.layout.entity.d.ts +13 -0
- package/dist/access/entities/business.menu.layout.entity.js +51 -0
- package/dist/access/entities/business.menu.layout.entity.js.map +1 -0
- package/dist/access/entities/business.ui.action.entity.d.ts +11 -0
- package/dist/access/entities/business.ui.action.entity.js +46 -0
- package/dist/access/entities/business.ui.action.entity.js.map +1 -0
- package/dist/access/entities/index.d.ts +2 -0
- package/dist/access/entities/index.js +2 -0
- package/dist/access/entities/index.js.map +1 -1
- package/dist/access/es6.classes.d.ts +20 -10
- package/dist/access/es6.classes.js +36 -0
- package/dist/access/es6.classes.js.map +1 -1
- package/dist/access/libraries/apply.menu.layout.d.ts +4 -0
- package/dist/access/libraries/apply.menu.layout.js +52 -0
- package/dist/access/libraries/apply.menu.layout.js.map +1 -0
- package/dist/access/libraries/business.ui.action.availability.d.ts +8 -0
- package/dist/access/libraries/business.ui.action.availability.js +34 -0
- package/dist/access/libraries/business.ui.action.availability.js.map +1 -0
- package/dist/access/libraries/index.d.ts +6 -0
- package/dist/access/libraries/index.js +6 -0
- package/dist/access/libraries/index.js.map +1 -1
- package/dist/access/libraries/process.application.menu.d.ts +1 -0
- package/dist/access/libraries/process.application.menu.js +11 -5
- package/dist/access/libraries/process.application.menu.js.map +1 -1
- package/dist/access/libraries/process.business.ui.action.d.ts +35 -0
- package/dist/access/libraries/process.business.ui.action.js +27 -0
- package/dist/access/libraries/process.business.ui.action.js.map +1 -0
- package/dist/access/libraries/process.developer.menu.d.ts +77 -0
- package/dist/access/libraries/process.developer.menu.js +138 -0
- package/dist/access/libraries/process.developer.menu.js.map +1 -0
- package/dist/access/libraries/process.menu.details.js +12 -3
- package/dist/access/libraries/process.menu.details.js.map +1 -1
- package/dist/access/libraries/search.developer.businesses.d.ts +9 -0
- package/dist/access/libraries/search.developer.businesses.js +24 -0
- package/dist/access/libraries/search.developer.businesses.js.map +1 -0
- package/dist/access/libraries/ui.action.businesses.d.ts +12 -0
- package/dist/access/libraries/ui.action.businesses.js +56 -0
- package/dist/access/libraries/ui.action.businesses.js.map +1 -0
- package/dist/access/services/developer.mode.access.service.d.ts +3 -1
- package/dist/access/services/developer.mode.access.service.js +12 -2
- package/dist/access/services/developer.mode.access.service.js.map +1 -1
- package/dist/development/controllers/development.ui.action.controller.d.ts +7 -0
- package/dist/development/controllers/development.ui.action.controller.js +48 -0
- package/dist/development/controllers/development.ui.action.controller.js.map +1 -0
- package/dist/development/controllers/index.d.ts +1 -0
- package/dist/development/controllers/index.js +1 -0
- package/dist/development/controllers/index.js.map +1 -1
- package/dist/development/es6.classes.d.ts +4 -2
- package/dist/development/es6.classes.js +10 -2
- package/dist/development/es6.classes.js.map +1 -1
- package/dist/development/services/development.ui.action.service.d.ts +12 -0
- package/dist/development/services/development.ui.action.service.js +38 -0
- package/dist/development/services/development.ui.action.service.js.map +1 -0
- package/dist/development/services/index.d.ts +1 -0
- package/dist/development/services/index.js +1 -0
- package/dist/development/services/index.js.map +1 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.create.tool.d.ts +3 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.create.tool.js +3 -2
- package/dist/mcp/admin/tools/ui_action/ui.action.create.tool.js.map +1 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.get.tool.d.ts +1 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.get.tool.js +2 -2
- package/dist/mcp/admin/tools/ui_action/ui.action.get.tool.js.map +1 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.update.tool.d.ts +3 -1
- package/dist/mcp/admin/tools/ui_action/ui.action.update.tool.js +6 -3
- package/dist/mcp/admin/tools/ui_action/ui.action.update.tool.js.map +1 -1
- package/dist/migrations/1791742796375-CreateBusinessUiActionTable.d.ts +5 -0
- package/dist/migrations/1791742796375-CreateBusinessUiActionTable.js +19 -0
- package/dist/migrations/1791742796375-CreateBusinessUiActionTable.js.map +1 -0
- package/dist/migrations/1791746059175-CreateBusinessMenuLayoutTable.d.ts +5 -0
- package/dist/migrations/1791746059175-CreateBusinessMenuLayoutTable.js +20 -0
- package/dist/migrations/1791746059175-CreateBusinessMenuLayoutTable.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessDeveloperMenu = void 0;
|
|
4
|
+
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const business_feature_entity_1 = require("../entities/business.feature.entity");
|
|
7
|
+
const business_menu_entity_1 = require("../entities/business.menu.entity");
|
|
8
|
+
const business_menu_layout_entity_1 = require("../entities/business.menu.layout.entity");
|
|
9
|
+
const feature_entity_1 = require("../entities/feature.entity");
|
|
10
|
+
const module_entity_1 = require("../entities/module.entity");
|
|
11
|
+
const product_entity_1 = require("../entities/product.entity");
|
|
12
|
+
const apply_menu_layout_1 = require("./apply.menu.layout");
|
|
13
|
+
class ProcessDeveloperMenu {
|
|
14
|
+
constructor(business) {
|
|
15
|
+
this.business = business;
|
|
16
|
+
}
|
|
17
|
+
async features(productId) {
|
|
18
|
+
await this.validateProduct(productId);
|
|
19
|
+
const features = await feature_entity_1.FeatureEntity.find({ where: { product_id: productId }, order: { name: 'ASC' } });
|
|
20
|
+
const businessFeatures = await business_feature_entity_1.BusinessFeatureEntity.find({ where: { business_id: this.business.id } });
|
|
21
|
+
return features.map((feature) => {
|
|
22
|
+
const own = businessFeatures.find((item) => item.feature_id === feature.id);
|
|
23
|
+
return { ...feature, assigned: !!own, active: !!own?.active };
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async setFeature(featureId, active) {
|
|
27
|
+
const feature = await feature_entity_1.FeatureEntity.first(featureId);
|
|
28
|
+
if (!feature)
|
|
29
|
+
throw new nestjs_utility_services_1.OperationException(`No feature found with id ${featureId}`);
|
|
30
|
+
const businessFeature = await business_feature_entity_1.BusinessFeatureEntity.firstOrNew({ business_id: this.business.id, feature_id: featureId });
|
|
31
|
+
if (!businessFeature.id && !active)
|
|
32
|
+
return businessFeature;
|
|
33
|
+
if (businessFeature.id && businessFeature.active === active)
|
|
34
|
+
return businessFeature;
|
|
35
|
+
businessFeature.active = active;
|
|
36
|
+
return businessFeature.save();
|
|
37
|
+
}
|
|
38
|
+
async menus() {
|
|
39
|
+
const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id }, relations: ['menu'] });
|
|
40
|
+
return businessMenus
|
|
41
|
+
.filter((businessMenu) => businessMenu.menu?.id)
|
|
42
|
+
.map((businessMenu) => ({ ...businessMenu.menu, active: businessMenu.active }));
|
|
43
|
+
}
|
|
44
|
+
async setMenu(menuId, active) {
|
|
45
|
+
const businessMenu = await business_menu_entity_1.BusinessMenuEntity.findOne({ where: { business_id: this.business.id, menu_id: menuId } });
|
|
46
|
+
if (!businessMenu)
|
|
47
|
+
throw new nestjs_utility_services_1.OperationException(`Menu ${menuId} is not provided by any feature of this business`);
|
|
48
|
+
businessMenu.active = active;
|
|
49
|
+
return businessMenu.save();
|
|
50
|
+
}
|
|
51
|
+
async setMenus(items) {
|
|
52
|
+
const ids = items.map((item) => item.id);
|
|
53
|
+
const duplicate = ids.find((id, index) => ids.indexOf(id) !== index);
|
|
54
|
+
if (duplicate)
|
|
55
|
+
throw new nestjs_utility_services_1.OperationException(`Menu ${duplicate} is listed more than once`);
|
|
56
|
+
const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id, menu_id: (0, typeorm_1.In)(ids) } });
|
|
57
|
+
const rows = items.map((item) => {
|
|
58
|
+
const businessMenu = businessMenus.find((row) => row.menu_id === item.id);
|
|
59
|
+
if (!businessMenu)
|
|
60
|
+
throw new nestjs_utility_services_1.OperationException(`Menu ${item.id} is not provided by any feature of this business`);
|
|
61
|
+
businessMenu.active = item.active;
|
|
62
|
+
return businessMenu;
|
|
63
|
+
});
|
|
64
|
+
return business_menu_entity_1.BusinessMenuEntity.save(rows);
|
|
65
|
+
}
|
|
66
|
+
async productMenus(productId) {
|
|
67
|
+
await this.validateProduct(productId);
|
|
68
|
+
const modules = await module_entity_1.ModuleEntity.find({
|
|
69
|
+
where: { product_id: productId, active: true, business_id: (0, typeorm_1.IsNull)() },
|
|
70
|
+
order: { display_order: 'ASC' },
|
|
71
|
+
relations: ['module_menus', 'module_menus.menu'],
|
|
72
|
+
});
|
|
73
|
+
const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id } });
|
|
74
|
+
const featureManaged = businessMenus.length > 0;
|
|
75
|
+
const data = [];
|
|
76
|
+
for (const module of nestjs_utility_services_1.ClassMapper.removeArrayWhoColumns(modules)) {
|
|
77
|
+
const { module_menus, ...mod } = module;
|
|
78
|
+
const moduleMenus = [...(module_menus || [])].sort((a, b) => a.display_order - b.display_order);
|
|
79
|
+
const menus = [];
|
|
80
|
+
for (const moduleMenu of moduleMenus) {
|
|
81
|
+
if (!moduleMenu.menu?.id || menus.some((menu) => menu.id === moduleMenu.menu_id))
|
|
82
|
+
continue;
|
|
83
|
+
const businessMenu = businessMenus.find((row) => row.menu_id === moduleMenu.menu_id);
|
|
84
|
+
if (featureManaged && !businessMenu)
|
|
85
|
+
continue;
|
|
86
|
+
menus.push({
|
|
87
|
+
...nestjs_utility_services_1.ClassMapper.removeWhoColumns(moduleMenu.menu),
|
|
88
|
+
display_order: moduleMenu.display_order,
|
|
89
|
+
default_module_id: module.id,
|
|
90
|
+
active: featureManaged ? businessMenu.active : true,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
data.push({ ...mod, menus });
|
|
94
|
+
}
|
|
95
|
+
const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
|
|
96
|
+
return {
|
|
97
|
+
feature_managed: featureManaged,
|
|
98
|
+
layout_saved: !!saved,
|
|
99
|
+
modules: new apply_menu_layout_1.ApplyMenuLayout().process(data, saved?.layout, true),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
async layout(productId) {
|
|
103
|
+
await this.validateProduct(productId);
|
|
104
|
+
const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
|
|
105
|
+
return { layout: saved?.layout ?? null, modules: await this.getModules(productId) };
|
|
106
|
+
}
|
|
107
|
+
async saveLayout(productId, layout) {
|
|
108
|
+
await this.validateProduct(productId);
|
|
109
|
+
const moduleIds = (await this.getModules(productId)).map((module) => module.id);
|
|
110
|
+
for (const entry of layout.modules) {
|
|
111
|
+
if (!moduleIds.includes(entry.module_id))
|
|
112
|
+
throw new nestjs_utility_services_1.OperationException(`Module ${entry.module_id} does not belong to this product`);
|
|
113
|
+
}
|
|
114
|
+
const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.firstOrNew({ business_id: this.business.id, product_id: productId });
|
|
115
|
+
saved.layout = { modules: layout.modules.map((entry) => ({ module_id: entry.module_id, menus: entry.menus })) };
|
|
116
|
+
return saved.save();
|
|
117
|
+
}
|
|
118
|
+
async resetLayout(productId) {
|
|
119
|
+
await this.validateProduct(productId);
|
|
120
|
+
const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
|
|
121
|
+
if (saved)
|
|
122
|
+
await saved.softDelete();
|
|
123
|
+
return { success: true };
|
|
124
|
+
}
|
|
125
|
+
getModules(productId) {
|
|
126
|
+
return module_entity_1.ModuleEntity.find({
|
|
127
|
+
where: { product_id: productId, active: true, business_id: (0, typeorm_1.IsNull)() },
|
|
128
|
+
order: { display_order: 'ASC' },
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async validateProduct(productId) {
|
|
132
|
+
const product = await product_entity_1.ProductEntity.first(productId);
|
|
133
|
+
if (!product)
|
|
134
|
+
throw new nestjs_utility_services_1.OperationException(`No product found with id ${productId}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.ProcessDeveloperMenu = ProcessDeveloperMenu;
|
|
138
|
+
//# sourceMappingURL=process.developer.menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.developer.menu.js","sourceRoot":"","sources":["../../../src/access/libraries/process.developer.menu.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.ProcessMenuDetails = void 0;
|
|
|
4
4
|
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
5
|
const menu_entity_1 = require("../entities/menu.entity");
|
|
6
6
|
const business_menu_entity_1 = require("../entities/business.menu.entity");
|
|
7
|
+
const business_ui_action_availability_1 = require("./business.ui.action.availability");
|
|
7
8
|
class ProcessMenuDetails {
|
|
8
9
|
constructor(accessService, business) {
|
|
9
10
|
this.accessService = accessService;
|
|
@@ -30,7 +31,7 @@ class ProcessMenuDetails {
|
|
|
30
31
|
const hasAccess = this.hasAccess(menu);
|
|
31
32
|
if (!hasAccess)
|
|
32
33
|
throw new nestjs_utility_services_1.AccessException();
|
|
33
|
-
const uiActions = this.getUiActions(menu);
|
|
34
|
+
const uiActions = await this.getUiActions(menu);
|
|
34
35
|
menu.ui_actions = uiActions.filter((item) => {
|
|
35
36
|
return item?.id;
|
|
36
37
|
});
|
|
@@ -61,10 +62,16 @@ class ProcessMenuDetails {
|
|
|
61
62
|
return true;
|
|
62
63
|
return this.accessService.hasRoleAssignments(roles);
|
|
63
64
|
}
|
|
64
|
-
getUiActions(menu) {
|
|
65
|
+
async getUiActions(menu) {
|
|
65
66
|
const uiActions = menu.menu_ui_actions;
|
|
67
|
+
const ids = uiActions.map((action) => action.ui_action?.id);
|
|
68
|
+
const availability = await new business_ui_action_availability_1.BusinessUiActionAvailability(this.business.id).load(ids);
|
|
66
69
|
const res = [];
|
|
67
70
|
for (const action of uiActions) {
|
|
71
|
+
if (!action.ui_action?.id)
|
|
72
|
+
continue;
|
|
73
|
+
if (!availability.isAvailable(action.ui_action.id))
|
|
74
|
+
continue;
|
|
68
75
|
if (this.uiActionHasRole(action.ui_action)) {
|
|
69
76
|
delete action.ui_action.roles;
|
|
70
77
|
res.push(action.ui_action);
|
|
@@ -82,12 +89,14 @@ class ProcessMenuDetails {
|
|
|
82
89
|
}
|
|
83
90
|
async isMenuAvailable(menuId) {
|
|
84
91
|
const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({
|
|
85
|
-
where: { business_id: this.business.id
|
|
92
|
+
where: { business_id: this.business.id },
|
|
86
93
|
relations: ['menu', 'menu.child_menus', 'menu.child_menus.menu'],
|
|
87
94
|
});
|
|
88
95
|
if (!businessMenus?.length)
|
|
89
96
|
return true;
|
|
90
97
|
for (const businessMenu of businessMenus) {
|
|
98
|
+
if (!businessMenu.active)
|
|
99
|
+
continue;
|
|
91
100
|
const menu = businessMenu.menu;
|
|
92
101
|
if (!menu?.id)
|
|
93
102
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.menu.details.js","sourceRoot":"","sources":["../../../src/access/libraries/process.menu.details.ts"],"names":[],"mappings":";;;AAAA,oFAAwF;AAExF,yDAAqD;AAKrD,2EAAsE;
|
|
1
|
+
{"version":3,"file":"process.menu.details.js","sourceRoot":"","sources":["../../../src/access/libraries/process.menu.details.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DeveloperBusinessSearchDto } from '../dtos/developer.business.search.dto';
|
|
2
|
+
export declare class SearchDeveloperBusinesses {
|
|
3
|
+
process(query: DeveloperBusinessSearchDto): Promise<{
|
|
4
|
+
id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
identifier: number;
|
|
7
|
+
active: boolean;
|
|
8
|
+
}[]>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchDeveloperBusinesses = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const access_business_entity_1 = require("../entities/access.business.entity");
|
|
6
|
+
class SearchDeveloperBusinesses {
|
|
7
|
+
async process(query) {
|
|
8
|
+
const q = query?.q?.trim();
|
|
9
|
+
const where = [];
|
|
10
|
+
if (q) {
|
|
11
|
+
where.push({ name: (0, typeorm_1.ILike)(`%${q.replace(/[\\%_]/g, (char) => `\\${char}`)}%`) });
|
|
12
|
+
if (/^\d{1,9}$/.test(q))
|
|
13
|
+
where.push({ id: +q }, { identifier: +q });
|
|
14
|
+
}
|
|
15
|
+
const businesses = await access_business_entity_1.AccessBusinessEntity.find({
|
|
16
|
+
where: where.length ? where : undefined,
|
|
17
|
+
order: { name: 'ASC' },
|
|
18
|
+
take: query?.limit ?? 20,
|
|
19
|
+
});
|
|
20
|
+
return businesses.map((business) => ({ id: business.id, name: business.name, identifier: business.identifier, active: business.active }));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.SearchDeveloperBusinesses = SearchDeveloperBusinesses;
|
|
24
|
+
//# sourceMappingURL=search.developer.businesses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.developer.businesses.js","sourceRoot":"","sources":["../../../src/access/libraries/search.developer.businesses.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAElD,+EAA0E;AAK1E,MAAa,yBAAyB;IAMlC,KAAK,CAAC,OAAO,CAAC,KAAiC;QAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC3B,MAAM,KAAK,GAA6C,EAAE,CAAC;QAE3D,IAAI,CAAC,EAAE,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhF,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,6CAAoB,CAAC,IAAI,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACtB,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;SAC3B,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9I,CAAC;CACJ;AAxBD,8DAwBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class UiActionBusinesses {
|
|
2
|
+
get(uiActionId: number): Promise<number[]>;
|
|
3
|
+
describe(uiActionId: number): Promise<{
|
|
4
|
+
business_ids: number[];
|
|
5
|
+
businesses: {
|
|
6
|
+
id: number;
|
|
7
|
+
name: string;
|
|
8
|
+
}[];
|
|
9
|
+
}>;
|
|
10
|
+
validate(businessIds: unknown): Promise<number[] | undefined>;
|
|
11
|
+
sync(uiActionId: number, businessIds: number[]): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UiActionBusinesses = void 0;
|
|
4
|
+
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const access_business_entity_1 = require("../entities/access.business.entity");
|
|
7
|
+
const business_ui_action_entity_1 = require("../entities/business.ui.action.entity");
|
|
8
|
+
class UiActionBusinesses {
|
|
9
|
+
async get(uiActionId) {
|
|
10
|
+
const rows = await business_ui_action_entity_1.BusinessUiActionEntity.find({ where: { ui_action_id: uiActionId }, order: { business_id: 'ASC' } });
|
|
11
|
+
return rows.map((row) => row.business_id);
|
|
12
|
+
}
|
|
13
|
+
async describe(uiActionId) {
|
|
14
|
+
const businessIds = await this.get(uiActionId);
|
|
15
|
+
if (!businessIds.length)
|
|
16
|
+
return { business_ids: [], businesses: [] };
|
|
17
|
+
const businesses = await access_business_entity_1.AccessBusinessEntity.find({ where: { id: (0, typeorm_1.In)(businessIds) }, order: { name: 'ASC' } });
|
|
18
|
+
return { business_ids: businessIds, businesses: businesses.map((business) => ({ id: business.id, name: business.name })) };
|
|
19
|
+
}
|
|
20
|
+
async validate(businessIds) {
|
|
21
|
+
if (businessIds === undefined || businessIds === null)
|
|
22
|
+
return undefined;
|
|
23
|
+
if (!Array.isArray(businessIds))
|
|
24
|
+
throw new nestjs_utility_services_1.OperationException('business_ids must be an array.');
|
|
25
|
+
const ids = [];
|
|
26
|
+
for (const id of businessIds) {
|
|
27
|
+
if (!Number.isInteger(id) || id <= 0)
|
|
28
|
+
throw new nestjs_utility_services_1.OperationException('business_ids must be positive integers.');
|
|
29
|
+
if (ids.includes(id))
|
|
30
|
+
throw new nestjs_utility_services_1.OperationException(`Business ${id} is listed more than once.`);
|
|
31
|
+
ids.push(id);
|
|
32
|
+
}
|
|
33
|
+
if (!ids.length)
|
|
34
|
+
return [];
|
|
35
|
+
const found = await access_business_entity_1.AccessBusinessEntity.find({ where: { id: (0, typeorm_1.In)(ids) } });
|
|
36
|
+
const missing = ids.filter((id) => !found.some((business) => business.id === id));
|
|
37
|
+
if (missing.length)
|
|
38
|
+
throw new nestjs_utility_services_1.OperationException(`No business found with id ${missing.join(', ')}.`);
|
|
39
|
+
return ids;
|
|
40
|
+
}
|
|
41
|
+
async sync(uiActionId, businessIds) {
|
|
42
|
+
const rows = await business_ui_action_entity_1.BusinessUiActionEntity.find({ where: { ui_action_id: uiActionId } });
|
|
43
|
+
for (const businessId of businessIds) {
|
|
44
|
+
if (rows.some((row) => row.business_id === businessId))
|
|
45
|
+
continue;
|
|
46
|
+
await business_ui_action_entity_1.BusinessUiActionEntity.create({ ui_action_id: uiActionId, business_id: businessId }).save();
|
|
47
|
+
}
|
|
48
|
+
for (const row of rows) {
|
|
49
|
+
if (businessIds.includes(row.business_id))
|
|
50
|
+
continue;
|
|
51
|
+
await row.softDelete();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.UiActionBusinesses = UiActionBusinesses;
|
|
56
|
+
//# sourceMappingURL=ui.action.businesses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.action.businesses.js","sourceRoot":"","sources":["../../../src/access/libraries/ui.action.businesses.ts"],"names":[],"mappings":";;;AAAA,oFAA4E;AAC5E,qCAA6B;AAC7B,+EAA0E;AAC1E,qFAA+E;AAM/E,MAAa,kBAAkB;IAM3B,KAAK,CAAC,GAAG,CAAC,UAAkB;QACxB,MAAM,IAAI,GAAG,MAAM,kDAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEvH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAOD,KAAK,CAAC,QAAQ,CAAC,UAAkB;QAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAErE,MAAM,UAAU,GAAG,MAAM,6CAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/G,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/H,CAAC;IAQD,KAAK,CAAC,QAAQ,CAAC,WAAoB;QAC/B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,4CAAkB,CAAC,gCAAgC,CAAC,CAAC;QAEhG,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,MAAM,IAAI,4CAAkB,CAAC,yCAAyC,CAAC,CAAC;YAC9G,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,4CAAkB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;YAE/F,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,6CAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,4CAAkB,CAAC,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErG,OAAO,GAAG,CAAC;IACf,CAAC;IAQD,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,WAAqB;QAChD,MAAM,IAAI,GAAG,MAAM,kDAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAExF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,UAAU,CAAC;gBAAE,SAAS;YAEjE,MAAM,kDAAsB,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtG,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YAEpD,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;IACL,CAAC;CACJ;AA1ED,gDA0EC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { AccessBusinessEntity } from '../entities/access.business.entity';
|
|
1
2
|
import { AccessBusinessService } from './access.business.service';
|
|
2
3
|
export declare class DeveloperModeAccessService {
|
|
3
4
|
private readonly accessBusinessService;
|
|
4
5
|
constructor(accessBusinessService: AccessBusinessService);
|
|
5
|
-
validate(): Promise<
|
|
6
|
+
validate(): Promise<AccessBusinessEntity>;
|
|
7
|
+
resolveBusiness(businessId?: number): Promise<AccessBusinessEntity>;
|
|
6
8
|
hasDeveloperAccess(attributes?: Record<string, any> | null): boolean;
|
|
7
9
|
}
|
|
@@ -12,17 +12,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DeveloperModeAccessService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
|
|
15
|
+
const access_business_entity_1 = require("../entities/access.business.entity");
|
|
15
16
|
const access_business_service_1 = require("./access.business.service");
|
|
16
17
|
let DeveloperModeAccessService = class DeveloperModeAccessService {
|
|
17
18
|
constructor(accessBusinessService) {
|
|
18
19
|
this.accessBusinessService = accessBusinessService;
|
|
19
20
|
}
|
|
20
21
|
async validate() {
|
|
21
|
-
await this.accessBusinessService.validateAccess();
|
|
22
|
+
const business = await this.accessBusinessService.validateAccess();
|
|
22
23
|
if (this.hasDeveloperAccess(nestjs_utility_services_1.Auth.user()?.attributes))
|
|
23
|
-
return;
|
|
24
|
+
return business;
|
|
24
25
|
throw new nestjs_utility_services_1.OperationException('You do not have access for this operation');
|
|
25
26
|
}
|
|
27
|
+
async resolveBusiness(businessId) {
|
|
28
|
+
const current = await this.validate();
|
|
29
|
+
if (!businessId || businessId === current.id)
|
|
30
|
+
return current;
|
|
31
|
+
const business = await access_business_entity_1.AccessBusinessEntity.findOne({ where: { id: businessId } });
|
|
32
|
+
if (!business)
|
|
33
|
+
throw new nestjs_utility_services_1.OperationException(`No business found with id ${businessId}`);
|
|
34
|
+
return business;
|
|
35
|
+
}
|
|
26
36
|
hasDeveloperAccess(attributes) {
|
|
27
37
|
return Boolean(attributes?.is_developer);
|
|
28
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.mode.access.service.js","sourceRoot":"","sources":["../../../src/access/services/developer.mode.access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAkF;AAClF,uEAAkE;AAQ3D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACnC,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;
|
|
1
|
+
{"version":3,"file":"developer.mode.access.service.js","sourceRoot":"","sources":["../../../src/access/services/developer.mode.access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAkF;AAClF,+EAA0E;AAC1E,uEAAkE;AAQ3D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACnC,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAO7E,KAAK,CAAC,QAAQ;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC;QAEnE,IAAI,IAAI,CAAC,kBAAkB,CAAC,8BAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEtE,MAAM,IAAI,4CAAkB,CAAC,2CAA2C,CAAC,CAAC;IAC9E,CAAC;IASD,KAAK,CAAC,eAAe,CAAC,UAAmB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,6CAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,4CAAkB,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;QAEvF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAKD,kBAAkB,CAAC,UAAuC;QACtD,OAAO,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;CACJ,CAAA;AAvCY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAE2C,+CAAqB;GADhE,0BAA0B,CAuCtC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DevelopmentUiActionService, UiActionUpsertBody } from '../services/development.ui.action.service';
|
|
2
|
+
export declare class DevelopmentUiActionController {
|
|
3
|
+
private readonly uiActionService;
|
|
4
|
+
constructor(uiActionService: DevelopmentUiActionService);
|
|
5
|
+
upsert(body: UiActionUpsertBody): Promise<any>;
|
|
6
|
+
getFull(id: string): Promise<any>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DevelopmentUiActionController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const development_ui_action_service_1 = require("../services/development.ui.action.service");
|
|
18
|
+
let DevelopmentUiActionController = class DevelopmentUiActionController {
|
|
19
|
+
constructor(uiActionService) {
|
|
20
|
+
this.uiActionService = uiActionService;
|
|
21
|
+
}
|
|
22
|
+
async upsert(body) {
|
|
23
|
+
return this.uiActionService.upsert(body);
|
|
24
|
+
}
|
|
25
|
+
async getFull(id) {
|
|
26
|
+
return this.uiActionService.get(parseInt(id, 10));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.DevelopmentUiActionController = DevelopmentUiActionController;
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, common_1.Post)('upsert'),
|
|
32
|
+
__param(0, (0, common_1.Body)()),
|
|
33
|
+
__metadata("design:type", Function),
|
|
34
|
+
__metadata("design:paramtypes", [Object]),
|
|
35
|
+
__metadata("design:returntype", Promise)
|
|
36
|
+
], DevelopmentUiActionController.prototype, "upsert", null);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, common_1.Get)(':id/full'),
|
|
39
|
+
__param(0, (0, common_1.Param)('id')),
|
|
40
|
+
__metadata("design:type", Function),
|
|
41
|
+
__metadata("design:paramtypes", [String]),
|
|
42
|
+
__metadata("design:returntype", Promise)
|
|
43
|
+
], DevelopmentUiActionController.prototype, "getFull", null);
|
|
44
|
+
exports.DevelopmentUiActionController = DevelopmentUiActionController = __decorate([
|
|
45
|
+
(0, common_1.Controller)('development/ui_action'),
|
|
46
|
+
__metadata("design:paramtypes", [development_ui_action_service_1.DevelopmentUiActionService])
|
|
47
|
+
], DevelopmentUiActionController);
|
|
48
|
+
//# sourceMappingURL=development.ui.action.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development.ui.action.controller.js","sourceRoot":"","sources":["../../../src/development/controllers/development.ui.action.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoE;AACpE,6FAA2G;AAOpG,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YAA6B,eAA2C;QAA3C,oBAAe,GAAf,eAAe,CAA4B;IAAG,CAAC;IAMtE,AAAN,KAAK,CAAC,MAAM,CAAS,IAAwB;QACzC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAMK,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU;QACjC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ,CAAA;AAlBY,sEAA6B;AAOhC;IADL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACD,WAAA,IAAA,aAAI,GAAE,CAAA;;;;2DAEnB;AAMK;IADL,IAAA,YAAG,EAAC,UAAU,CAAC;IACD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;4DAEzB;wCAjBQ,6BAA6B;IADzC,IAAA,mBAAU,EAAC,uBAAuB,CAAC;qCAEc,0DAA0B;GAD/D,6BAA6B,CAkBzC"}
|
|
@@ -18,4 +18,5 @@ __exportStar(require("./development.catalog.controller"), exports);
|
|
|
18
18
|
__exportStar(require("./development.crud.controller"), exports);
|
|
19
19
|
__exportStar(require("./development.form.script.controller"), exports);
|
|
20
20
|
__exportStar(require("./development.report.controller"), exports);
|
|
21
|
+
__exportStar(require("./development.ui.action.controller"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/development/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,mEAAiD;AACjD,gEAA8C;AAC9C,uEAAqD;AACrD,kEAAgD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/development/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,mEAAiD;AACjD,gEAA8C;AAC9C,uEAAqD;AACrD,kEAAgD;AAChD,qEAAmD"}
|
|
@@ -3,6 +3,7 @@ import { DevelopmentCatalogController } from './controllers/development.catalog.
|
|
|
3
3
|
import { DevelopmentCrudController } from './controllers/development.crud.controller';
|
|
4
4
|
import { DevelopmentFormScriptController } from './controllers/development.form.script.controller';
|
|
5
5
|
import { DevelopmentReportController } from './controllers/development.report.controller';
|
|
6
|
+
import { DevelopmentUiActionController } from './controllers/development.ui.action.controller';
|
|
6
7
|
import { ColumnCatalogAttributesDto } from './dtos/column.catalog.attributes.dto';
|
|
7
8
|
import { MaterialViewCatalogAttributesDto } from './dtos/material.view.catalog.attributes.dto';
|
|
8
9
|
import { ReportingCatalogGate } from './gates/reporting.catalog.gate';
|
|
@@ -10,9 +11,10 @@ import { DevelopmentMiddleware } from './middlewares/development.middleware';
|
|
|
10
11
|
import { DevelopmentEntityRegistry } from './registries/development.entity.registry';
|
|
11
12
|
import { AdminReportViewService } from './services/admin.report.view.service';
|
|
12
13
|
import { DevelopmentCrudService } from './services/development.crud.service';
|
|
14
|
+
import { DevelopmentUiActionService } from './services/development.ui.action.service';
|
|
13
15
|
declare const es6Classes: {
|
|
14
16
|
commands: (typeof DevelopmentFormScriptCommand)[];
|
|
15
|
-
controllers: (typeof DevelopmentCatalogController | typeof DevelopmentCrudController | typeof DevelopmentFormScriptController | typeof DevelopmentReportController)[];
|
|
17
|
+
controllers: (typeof DevelopmentCatalogController | typeof DevelopmentCrudController | typeof DevelopmentFormScriptController | typeof DevelopmentReportController | typeof DevelopmentUiActionController)[];
|
|
16
18
|
dtos: (typeof ColumnCatalogAttributesDto | typeof MaterialViewCatalogAttributesDto)[];
|
|
17
19
|
entities: any[];
|
|
18
20
|
gates: (typeof ReportingCatalogGate)[];
|
|
@@ -20,7 +22,7 @@ declare const es6Classes: {
|
|
|
20
22
|
jobs: any[];
|
|
21
23
|
middlewares: (typeof DevelopmentMiddleware)[];
|
|
22
24
|
registries: (typeof DevelopmentEntityRegistry)[];
|
|
23
|
-
services: (typeof DevelopmentCrudService | typeof AdminReportViewService)[];
|
|
25
|
+
services: (typeof DevelopmentCrudService | typeof AdminReportViewService | typeof DevelopmentUiActionService)[];
|
|
24
26
|
subscribers: any[];
|
|
25
27
|
};
|
|
26
28
|
export default es6Classes;
|
|
@@ -5,6 +5,7 @@ const development_catalog_controller_1 = require("./controllers/development.cata
|
|
|
5
5
|
const development_crud_controller_1 = require("./controllers/development.crud.controller");
|
|
6
6
|
const development_form_script_controller_1 = require("./controllers/development.form.script.controller");
|
|
7
7
|
const development_report_controller_1 = require("./controllers/development.report.controller");
|
|
8
|
+
const development_ui_action_controller_1 = require("./controllers/development.ui.action.controller");
|
|
8
9
|
const column_catalog_attributes_dto_1 = require("./dtos/column.catalog.attributes.dto");
|
|
9
10
|
const material_view_catalog_attributes_dto_1 = require("./dtos/material.view.catalog.attributes.dto");
|
|
10
11
|
const reporting_catalog_gate_1 = require("./gates/reporting.catalog.gate");
|
|
@@ -12,9 +13,16 @@ const development_middleware_1 = require("./middlewares/development.middleware")
|
|
|
12
13
|
const development_entity_registry_1 = require("./registries/development.entity.registry");
|
|
13
14
|
const admin_report_view_service_1 = require("./services/admin.report.view.service");
|
|
14
15
|
const development_crud_service_1 = require("./services/development.crud.service");
|
|
16
|
+
const development_ui_action_service_1 = require("./services/development.ui.action.service");
|
|
15
17
|
const es6Classes = {
|
|
16
18
|
commands: [development_form_script_command_1.DevelopmentFormScriptCommand],
|
|
17
|
-
controllers: [
|
|
19
|
+
controllers: [
|
|
20
|
+
development_catalog_controller_1.DevelopmentCatalogController,
|
|
21
|
+
development_crud_controller_1.DevelopmentCrudController,
|
|
22
|
+
development_form_script_controller_1.DevelopmentFormScriptController,
|
|
23
|
+
development_report_controller_1.DevelopmentReportController,
|
|
24
|
+
development_ui_action_controller_1.DevelopmentUiActionController,
|
|
25
|
+
],
|
|
18
26
|
dtos: [column_catalog_attributes_dto_1.ColumnCatalogAttributesDto, material_view_catalog_attributes_dto_1.MaterialViewCatalogAttributesDto],
|
|
19
27
|
entities: [],
|
|
20
28
|
gates: [reporting_catalog_gate_1.ReportingCatalogGate],
|
|
@@ -22,7 +30,7 @@ const es6Classes = {
|
|
|
22
30
|
jobs: [],
|
|
23
31
|
middlewares: [development_middleware_1.DevelopmentMiddleware],
|
|
24
32
|
registries: [development_entity_registry_1.DevelopmentEntityRegistry],
|
|
25
|
-
services: [admin_report_view_service_1.AdminReportViewService, development_crud_service_1.DevelopmentCrudService],
|
|
33
|
+
services: [admin_report_view_service_1.AdminReportViewService, development_crud_service_1.DevelopmentCrudService, development_ui_action_service_1.DevelopmentUiActionService],
|
|
26
34
|
subscribers: [],
|
|
27
35
|
};
|
|
28
36
|
exports.default = es6Classes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es6.classes.js","sourceRoot":"","sources":["../../src/development/es6.classes.ts"],"names":[],"mappings":";;AAAA,gGAA0F;AAC1F,iGAA4F;AAC5F,2FAAsF;AACtF,yGAAmG;AACnG,+FAA0F;AAC1F,wFAAkF;AAClF,sGAA+F;AAC/F,2EAAsE;AACtE,iFAA6E;AAC7E,0FAAqF;AACrF,oFAA8E;AAC9E,kFAA6E;
|
|
1
|
+
{"version":3,"file":"es6.classes.js","sourceRoot":"","sources":["../../src/development/es6.classes.ts"],"names":[],"mappings":";;AAAA,gGAA0F;AAC1F,iGAA4F;AAC5F,2FAAsF;AACtF,yGAAmG;AACnG,+FAA0F;AAC1F,qGAA+F;AAC/F,wFAAkF;AAClF,sGAA+F;AAC/F,2EAAsE;AACtE,iFAA6E;AAC7E,0FAAqF;AACrF,oFAA8E;AAC9E,kFAA6E;AAC7E,4FAAsF;AAEtF,MAAM,UAAU,GAAG;IACf,QAAQ,EAAE,CAAC,8DAA4B,CAAC;IACxC,WAAW,EAAE;QACT,6DAA4B;QAC5B,uDAAyB;QACzB,oEAA+B;QAC/B,2DAA2B;QAC3B,gEAA6B;KAChC;IACD,IAAI,EAAE,CAAC,0DAA0B,EAAE,uEAAgC,CAAC;IACpE,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,CAAC,6CAAoB,CAAC;IAC7B,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,CAAC,8CAAqB,CAAC;IACpC,UAAU,EAAE,CAAC,uDAAyB,CAAC;IACvC,QAAQ,EAAE,CAAC,kDAAsB,EAAE,iDAAsB,EAAE,0DAA0B,CAAC;IACtF,WAAW,EAAE,EAAE;CAClB,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DevelopmentCrudService } from './development.crud.service';
|
|
2
|
+
export type UiActionUpsertBody = Record<string, unknown> & {
|
|
3
|
+
id?: number;
|
|
4
|
+
business_ids?: number[];
|
|
5
|
+
};
|
|
6
|
+
export declare class DevelopmentUiActionService {
|
|
7
|
+
private readonly crudService;
|
|
8
|
+
private readonly businesses;
|
|
9
|
+
constructor(crudService: DevelopmentCrudService);
|
|
10
|
+
get(id: number): Promise<any>;
|
|
11
|
+
upsert(body: UiActionUpsertBody): Promise<any>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DevelopmentUiActionService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const ui_action_businesses_1 = require("../../access/libraries/ui.action.businesses");
|
|
15
|
+
const development_crud_service_1 = require("./development.crud.service");
|
|
16
|
+
let DevelopmentUiActionService = class DevelopmentUiActionService {
|
|
17
|
+
constructor(crudService) {
|
|
18
|
+
this.crudService = crudService;
|
|
19
|
+
this.businesses = new ui_action_businesses_1.UiActionBusinesses();
|
|
20
|
+
}
|
|
21
|
+
async get(id) {
|
|
22
|
+
const uiAction = await this.crudService.get('ui_action', id);
|
|
23
|
+
return { ...uiAction, business_ids: await this.businesses.get(id) };
|
|
24
|
+
}
|
|
25
|
+
async upsert(body) {
|
|
26
|
+
const businessIds = await this.businesses.validate(body?.business_ids);
|
|
27
|
+
const uiAction = body?.id ? await this.crudService.update('ui_action', body.id, body) : await this.crudService.create('ui_action', body);
|
|
28
|
+
if (businessIds)
|
|
29
|
+
await this.businesses.sync(uiAction.id, businessIds);
|
|
30
|
+
return this.get(uiAction.id);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.DevelopmentUiActionService = DevelopmentUiActionService;
|
|
34
|
+
exports.DevelopmentUiActionService = DevelopmentUiActionService = __decorate([
|
|
35
|
+
(0, common_1.Injectable)(),
|
|
36
|
+
__metadata("design:paramtypes", [development_crud_service_1.DevelopmentCrudService])
|
|
37
|
+
], DevelopmentUiActionService);
|
|
38
|
+
//# sourceMappingURL=development.ui.action.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development.ui.action.service.js","sourceRoot":"","sources":["../../../src/development/services/development.ui.action.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,sFAAiF;AACjF,yEAAoE;AAa7D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAGnC,YAA6B,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QAF/C,eAAU,GAAG,IAAI,yCAAkB,EAAE,CAAC;IAEY,CAAC;IAOpE,KAAK,CAAC,GAAG,CAAC,EAAU;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE7D,OAAO,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,IAAwB;QACjC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEzI,IAAI,WAAW;YAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AA/BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAIiC,iDAAsB;GAHvD,0BAA0B,CA+BtC"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./admin.report.view.service"), exports);
|
|
18
18
|
__exportStar(require("./development.crud.service"), exports);
|
|
19
|
+
__exportStar(require("./development.ui.action.service"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/development/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,8DAA4C;AAC5C,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/development/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,8DAA4C;AAC5C,6DAA2C;AAC3C,kEAAgD"}
|