@mbc-cqrs-serverless/tenant 0.1.50-beta.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/LICENSE.txt +7 -0
- package/README.md +22 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +18 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/tenant.constant.d.ts +4 -0
- package/dist/constants/tenant.constant.js +8 -0
- package/dist/constants/tenant.constant.js.map +1 -0
- package/dist/controllers/index.d.ts +1 -0
- package/dist/controllers/index.js +18 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/tenant.controller.d.ts +14 -0
- package/dist/controllers/tenant.controller.js +121 -0
- package/dist/controllers/tenant.controller.js.map +1 -0
- package/dist/dto/common-tenant-create.dto.d.ts +10 -0
- package/dist/dto/common-tenant-create.dto.js +43 -0
- package/dist/dto/common-tenant-create.dto.js.map +1 -0
- package/dist/dto/index.d.ts +5 -0
- package/dist/dto/index.js +22 -0
- package/dist/dto/index.js.map +1 -0
- package/dist/dto/tenant-create.dto.d.ts +11 -0
- package/dist/dto/tenant-create.dto.js +53 -0
- package/dist/dto/tenant-create.dto.js.map +1 -0
- package/dist/dto/tenant-group-add.dto.d.ts +8 -0
- package/dist/dto/tenant-group-add.dto.js +52 -0
- package/dist/dto/tenant-group-add.dto.js.map +1 -0
- package/dist/dto/tenant-group-update.dto.d.ts +5 -0
- package/dist/dto/tenant-group-update.dto.js +52 -0
- package/dist/dto/tenant-group-update.dto.js.map +1 -0
- package/dist/dto/tenant-update.dto.d.ts +6 -0
- package/dist/dto/tenant-update.dto.js +13 -0
- package/dist/dto/tenant-update.dto.js.map +1 -0
- package/dist/entities/setting-list.entity.d.ts +5 -0
- package/dist/entities/setting-list.entity.js +31 -0
- package/dist/entities/setting-list.entity.js.map +1 -0
- package/dist/entities/setting.entity.d.ts +5 -0
- package/dist/entities/setting.entity.js +14 -0
- package/dist/entities/setting.entity.js.map +1 -0
- package/dist/enums/setting.enum.d.ts +6 -0
- package/dist/enums/setting.enum.js +11 -0
- package/dist/enums/setting.enum.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/tenant.service.interface.d.ts +76 -0
- package/dist/interfaces/tenant.service.interface.js +3 -0
- package/dist/interfaces/tenant.service.interface.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/tenant.service.d.ts +29 -0
- package/dist/services/tenant.service.js +212 -0
- package/dist/services/tenant.service.js.map +1 -0
- package/dist/tenant.module-definition.d.ts +4 -0
- package/dist/tenant.module-definition.js +7 -0
- package/dist/tenant.module-definition.js.map +1 -0
- package/dist/tenant.module.d.ts +5 -0
- package/dist/tenant.module.js +44 -0
- package/dist/tenant.module.js.map +1 -0
- package/dist/update-scheme.d.ts +1 -0
- package/dist/update-scheme.js +24 -0
- package/dist/update-scheme.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting.entity.js","sourceRoot":"","sources":["../../src/entities/setting.entity.ts"],"names":[],"mappings":";;;;AAAA,MAAa,aAAa;IAIxB,YAAY,OAA+B;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;;;;CACF;AAPD,sCAOC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingTypeEnum = void 0;
|
|
4
|
+
var SettingTypeEnum;
|
|
5
|
+
(function (SettingTypeEnum) {
|
|
6
|
+
SettingTypeEnum["TENANT_COMMON"] = "COMMON";
|
|
7
|
+
SettingTypeEnum["TENANT"] = "TENANT";
|
|
8
|
+
SettingTypeEnum["TENANT_GROUP"] = "GROUP";
|
|
9
|
+
SettingTypeEnum["TENANT_USER"] = "USER";
|
|
10
|
+
})(SettingTypeEnum || (exports.SettingTypeEnum = SettingTypeEnum = {}));
|
|
11
|
+
//# sourceMappingURL=setting.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setting.enum.js","sourceRoot":"","sources":["../../src/enums/setting.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,2CAAwB,CAAA;IACxB,oCAAiB,CAAA;IACjB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;AACtB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./constants"), exports);
|
|
18
|
+
__exportStar(require("./controllers"), exports);
|
|
19
|
+
__exportStar(require("./services"), exports);
|
|
20
|
+
__exportStar(require("./tenant.module"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,gDAA6B;AAC7B,6CAA0B;AAC1B,kDAA+B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CommandModel, DataModel, DetailKey, IInvoke } from '@mbc-cqrs-serverless/core';
|
|
2
|
+
import { CommonTenantCreateDto, TenantCreateDto, TenantGroupAddDto, TenantGroupUpdateDto, TenantUpdateDto } from '../dto';
|
|
3
|
+
/**
|
|
4
|
+
* Interface representing the service responsible for managing tenant codes.
|
|
5
|
+
*/
|
|
6
|
+
export interface ITenantService {
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the current tenant code associated with a specific key.
|
|
9
|
+
*
|
|
10
|
+
* @param key - The key used to identify the tenant code details.
|
|
11
|
+
* @returns A promise that resolves to the tenant code's data entity.
|
|
12
|
+
*/
|
|
13
|
+
getTenant(key: DetailKey): Promise<DataModel>;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a new tenant code based on the provided data.
|
|
16
|
+
*
|
|
17
|
+
* @param dto - The data transfer object containing the parameters required for creating a tenant code.
|
|
18
|
+
* @param context - Additional options including the invocation context.
|
|
19
|
+
* @returns A promise that resolves to the newly created tenant code's data entity.
|
|
20
|
+
*/
|
|
21
|
+
createTenant(dto: TenantCreateDto, context: {
|
|
22
|
+
invokeContext: IInvoke;
|
|
23
|
+
}): Promise<CommandModel>;
|
|
24
|
+
/**
|
|
25
|
+
* Updates an existing tenant code with new data.
|
|
26
|
+
*
|
|
27
|
+
* @param key - The key used to identify the tenant code to update.
|
|
28
|
+
* @param dto - The data transfer object containing the updated parameters for the tenant code.
|
|
29
|
+
* @param context - Additional options including the invocation context.
|
|
30
|
+
* @returns A promise that resolves to the updated tenant code's data entity.
|
|
31
|
+
*/
|
|
32
|
+
updateTenant(key: DetailKey, dto: TenantUpdateDto, context: {
|
|
33
|
+
invokeContext: IInvoke;
|
|
34
|
+
}): Promise<CommandModel>;
|
|
35
|
+
/**
|
|
36
|
+
* Deletes an existing tenant code identified by the specified key.
|
|
37
|
+
*
|
|
38
|
+
* @param key - The key used to identify the tenant code to delete.
|
|
39
|
+
* @param context - Additional options including the invocation context.
|
|
40
|
+
* @returns A promise that resolves to the data entity of the deleted tenant code.
|
|
41
|
+
*/
|
|
42
|
+
deleteTenant(key: DetailKey, context: {
|
|
43
|
+
invokeContext: IInvoke;
|
|
44
|
+
}): Promise<CommandModel>;
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new common tenant code based on the provided data.
|
|
47
|
+
*
|
|
48
|
+
* @param dto - The data transfer object containing the parameters required for creating a common tenant code.
|
|
49
|
+
* @param context - Additional options including the invocation context.
|
|
50
|
+
* @returns A promise that resolves to the newly created common tenant code's data entity.
|
|
51
|
+
*/
|
|
52
|
+
createCommonTenant(dto: CommonTenantCreateDto, context: {
|
|
53
|
+
invokeContext: IInvoke;
|
|
54
|
+
}): Promise<CommandModel>;
|
|
55
|
+
/**
|
|
56
|
+
* Adds a group to the tenant code.
|
|
57
|
+
*
|
|
58
|
+
* @param dto - The data transfer object containing the parameters required for adding a group to the tenant code.
|
|
59
|
+
* @param context - Additional options including the invocation context.
|
|
60
|
+
* @returns A promise that resolves to the data entity of the tenant code with the added group.
|
|
61
|
+
*/
|
|
62
|
+
addTenantGroup(dto: TenantGroupAddDto, context: {
|
|
63
|
+
invokeContext: IInvoke;
|
|
64
|
+
}): Promise<CommandModel>;
|
|
65
|
+
/**
|
|
66
|
+
* Customizes the setting groups for a tenant, switching to `customized` mode.
|
|
67
|
+
*
|
|
68
|
+
* @param key - The key used to identify the tenant.
|
|
69
|
+
* @param settingGroups - The custom setting groups to assign.
|
|
70
|
+
* @param context - Additional options including the invocation context.
|
|
71
|
+
* @returns A promise that resolves to the updated tenant's data entity.
|
|
72
|
+
*/
|
|
73
|
+
customizeSettingGroups(dto: TenantGroupUpdateDto, context: {
|
|
74
|
+
invokeContext: IInvoke;
|
|
75
|
+
}): Promise<CommandModel>;
|
|
76
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.service.interface.js","sourceRoot":"","sources":["../../src/interfaces/tenant.service.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tenant.service';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./tenant.service"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CommandModel, CommandService, DataModel, DataService, DetailKey, IInvoke } from '@mbc-cqrs-serverless/core';
|
|
2
|
+
import { CommonTenantCreateDto, TenantCreateDto, TenantGroupAddDto, TenantGroupUpdateDto, TenantUpdateDto } from '../dto';
|
|
3
|
+
import { ITenantService } from '../interfaces/tenant.service.interface';
|
|
4
|
+
export declare class TenantService implements ITenantService {
|
|
5
|
+
private readonly commandService;
|
|
6
|
+
private readonly dataService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(commandService: CommandService, dataService: DataService);
|
|
9
|
+
getTenant(key: DetailKey): Promise<DataModel>;
|
|
10
|
+
createCommonTenant(dto: CommonTenantCreateDto, context: {
|
|
11
|
+
invokeContext: IInvoke;
|
|
12
|
+
}): Promise<CommandModel>;
|
|
13
|
+
createTenant(dto: TenantCreateDto, context: {
|
|
14
|
+
invokeContext: IInvoke;
|
|
15
|
+
}): Promise<CommandModel>;
|
|
16
|
+
updateTenant(key: DetailKey, dto: TenantUpdateDto, context: {
|
|
17
|
+
invokeContext: IInvoke;
|
|
18
|
+
}): Promise<CommandModel>;
|
|
19
|
+
deleteTenant(key: DetailKey, context: {
|
|
20
|
+
invokeContext: IInvoke;
|
|
21
|
+
}): Promise<CommandModel>;
|
|
22
|
+
addTenantGroup(dto: TenantGroupAddDto, context: {
|
|
23
|
+
invokeContext: IInvoke;
|
|
24
|
+
}): Promise<CommandModel>;
|
|
25
|
+
customizeSettingGroups(dto: TenantGroupUpdateDto, context: {
|
|
26
|
+
invokeContext: IInvoke;
|
|
27
|
+
}): Promise<CommandModel>;
|
|
28
|
+
private sortGroups;
|
|
29
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
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 TenantService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TenantService = void 0;
|
|
14
|
+
const core_1 = require("@mbc-cqrs-serverless/core");
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const common_2 = require("@nestjs/common");
|
|
17
|
+
const tenant_constant_1 = require("../constants/tenant.constant");
|
|
18
|
+
const setting_enum_1 = require("../enums/setting.enum");
|
|
19
|
+
let TenantService = TenantService_1 = class TenantService {
|
|
20
|
+
constructor(commandService, dataService) {
|
|
21
|
+
this.commandService = commandService;
|
|
22
|
+
this.dataService = dataService;
|
|
23
|
+
this.logger = new common_2.Logger(TenantService_1.name);
|
|
24
|
+
}
|
|
25
|
+
async getTenant(key) {
|
|
26
|
+
return await this.dataService.getItem(key);
|
|
27
|
+
}
|
|
28
|
+
async createCommonTenant(dto, context) {
|
|
29
|
+
const { name, description } = dto;
|
|
30
|
+
const pk = `${tenant_constant_1.TENANT_SYSTEM_PREFIX}${core_1.KEY_SEPARATOR}${setting_enum_1.SettingTypeEnum.TENANT_COMMON}`;
|
|
31
|
+
const sk = tenant_constant_1.TENANT_SK;
|
|
32
|
+
const tenant = await this.dataService.getItem({
|
|
33
|
+
pk,
|
|
34
|
+
sk,
|
|
35
|
+
});
|
|
36
|
+
if (tenant) {
|
|
37
|
+
throw new common_1.BadRequestException(`Tenant already exist: ${setting_enum_1.SettingTypeEnum.TENANT_COMMON}`);
|
|
38
|
+
}
|
|
39
|
+
const command = {
|
|
40
|
+
pk: pk,
|
|
41
|
+
sk: sk,
|
|
42
|
+
code: sk,
|
|
43
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
44
|
+
name: name,
|
|
45
|
+
tenantCode: setting_enum_1.SettingTypeEnum.TENANT_COMMON,
|
|
46
|
+
type: setting_enum_1.SettingTypeEnum.TENANT_COMMON,
|
|
47
|
+
version: core_1.VERSION_FIRST,
|
|
48
|
+
attributes: {
|
|
49
|
+
description: description,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
return await this.commandService.publishAsync(command, context);
|
|
53
|
+
}
|
|
54
|
+
async createTenant(dto, context) {
|
|
55
|
+
const { name, code, description } = dto;
|
|
56
|
+
const pk = `${tenant_constant_1.TENANT_SYSTEM_PREFIX}${core_1.KEY_SEPARATOR}${code}`;
|
|
57
|
+
const sk = tenant_constant_1.TENANT_SK;
|
|
58
|
+
const tenant = await this.dataService.getItem({
|
|
59
|
+
pk,
|
|
60
|
+
sk,
|
|
61
|
+
});
|
|
62
|
+
if (tenant) {
|
|
63
|
+
throw new common_1.BadRequestException(`Tenant already exist: ${setting_enum_1.SettingTypeEnum.TENANT_COMMON}`);
|
|
64
|
+
}
|
|
65
|
+
const command = {
|
|
66
|
+
pk: pk,
|
|
67
|
+
sk: sk,
|
|
68
|
+
code: sk,
|
|
69
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
70
|
+
name: name,
|
|
71
|
+
tenantCode: code,
|
|
72
|
+
type: code,
|
|
73
|
+
version: core_1.VERSION_FIRST,
|
|
74
|
+
attributes: {
|
|
75
|
+
description: description,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
return await this.commandService.publishAsync(command, context);
|
|
79
|
+
}
|
|
80
|
+
async updateTenant(key, dto, context) {
|
|
81
|
+
const { pk, sk } = key;
|
|
82
|
+
const data = await this.dataService.getItem(key);
|
|
83
|
+
if (!data) {
|
|
84
|
+
throw new common_1.BadRequestException(`Tenant not found for update: ${JSON.stringify(key)}`);
|
|
85
|
+
}
|
|
86
|
+
const item = await this.commandService.publishPartialUpdateAsync({
|
|
87
|
+
pk,
|
|
88
|
+
sk,
|
|
89
|
+
name: dto.name,
|
|
90
|
+
attributes: dto.attributes,
|
|
91
|
+
version: data.version,
|
|
92
|
+
}, context);
|
|
93
|
+
return item;
|
|
94
|
+
}
|
|
95
|
+
async deleteTenant(key, context) {
|
|
96
|
+
const data = await this.dataService.getItem(key);
|
|
97
|
+
if (!data) {
|
|
98
|
+
throw new common_1.BadRequestException(`Tenant not found for delete: ${JSON.stringify(key)}`);
|
|
99
|
+
}
|
|
100
|
+
const { pk, sk } = key;
|
|
101
|
+
const item = await this.commandService.publishPartialUpdateAsync({
|
|
102
|
+
pk,
|
|
103
|
+
sk,
|
|
104
|
+
version: data.version,
|
|
105
|
+
isDeleted: true,
|
|
106
|
+
}, context);
|
|
107
|
+
return item;
|
|
108
|
+
}
|
|
109
|
+
async addTenantGroup(dto, context) {
|
|
110
|
+
const { role, groupId, tenantCode } = dto;
|
|
111
|
+
const tenant = await this.dataService.getItem({
|
|
112
|
+
pk: `${tenant_constant_1.TENANT_SYSTEM_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`,
|
|
113
|
+
sk: tenant_constant_1.TENANT_SK,
|
|
114
|
+
});
|
|
115
|
+
if (!tenant) {
|
|
116
|
+
this.logger.error(`Tenant not found for addGroup: ${tenantCode}`);
|
|
117
|
+
throw new common_1.BadRequestException('Tenant not found');
|
|
118
|
+
}
|
|
119
|
+
// Helper to create a new attribute
|
|
120
|
+
const createNewAttribute = () => ({
|
|
121
|
+
tenantRole: role,
|
|
122
|
+
groups: [groupId],
|
|
123
|
+
setting_groups: [groupId],
|
|
124
|
+
setting_groups_mode: 'auto',
|
|
125
|
+
});
|
|
126
|
+
// Helper to update an existing attribute
|
|
127
|
+
const updateAttribute = (item) => {
|
|
128
|
+
if (item.groups.includes(groupId))
|
|
129
|
+
return item;
|
|
130
|
+
const newGroups = [...item.groups, groupId];
|
|
131
|
+
const newSettingGroups = item.setting_groups_mode === 'customized'
|
|
132
|
+
? [...item.setting_groups, groupId]
|
|
133
|
+
: this.sortGroups(newGroups);
|
|
134
|
+
return {
|
|
135
|
+
...item,
|
|
136
|
+
groups: newGroups,
|
|
137
|
+
setting_groups: newSettingGroups,
|
|
138
|
+
setting_groups_mode: item.setting_groups_mode || 'auto',
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
// If tenant exists and has attributes
|
|
142
|
+
if (Array.isArray(tenant?.attributes?.setting) &&
|
|
143
|
+
tenant.attributes.setting.length > 0) {
|
|
144
|
+
const existingRole = tenant.attributes.setting.find((i) => i.tenantRole === role);
|
|
145
|
+
const updatedAttributes = existingRole
|
|
146
|
+
? tenant.attributes.setting.map((item) => item.tenantRole === role ? updateAttribute(item) : item)
|
|
147
|
+
: [...tenant.attributes.setting, createNewAttribute()];
|
|
148
|
+
return await this.commandService.publishPartialUpdateAsync({
|
|
149
|
+
pk: tenant.pk,
|
|
150
|
+
sk: tenant.sk,
|
|
151
|
+
version: tenant.version,
|
|
152
|
+
attributes: {
|
|
153
|
+
setting: updatedAttributes,
|
|
154
|
+
},
|
|
155
|
+
}, context);
|
|
156
|
+
}
|
|
157
|
+
// If tenant does not exist or has no attributes
|
|
158
|
+
return await this.commandService.publishPartialUpdateAsync({
|
|
159
|
+
pk: tenant.pk,
|
|
160
|
+
sk: tenant.sk,
|
|
161
|
+
version: tenant.version,
|
|
162
|
+
attributes: {
|
|
163
|
+
setting: [createNewAttribute()],
|
|
164
|
+
},
|
|
165
|
+
}, context);
|
|
166
|
+
}
|
|
167
|
+
async customizeSettingGroups(dto, context) {
|
|
168
|
+
const { role, settingGroups, tenantCode } = dto;
|
|
169
|
+
const tenant = await this.dataService.getItem({
|
|
170
|
+
pk: `${tenant_constant_1.TENANT_SYSTEM_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`,
|
|
171
|
+
sk: tenant_constant_1.TENANT_SK,
|
|
172
|
+
});
|
|
173
|
+
if (!tenant) {
|
|
174
|
+
this.logger.error(`Tenant not found for customizeSettingGroups: ${tenantCode}`);
|
|
175
|
+
throw new common_1.BadRequestException(`Tenant not found for key: ${JSON.stringify(tenantCode)}`);
|
|
176
|
+
}
|
|
177
|
+
const settings = tenant.attributes?.setting || [];
|
|
178
|
+
const updatedSettings = settings.map((item) => {
|
|
179
|
+
if (item.tenantRole !== role)
|
|
180
|
+
return item;
|
|
181
|
+
return {
|
|
182
|
+
...item,
|
|
183
|
+
groups: settingGroups,
|
|
184
|
+
setting_groups: settingGroups,
|
|
185
|
+
setting_groups_mode: 'customized',
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
return await this.commandService.publishPartialUpdateAsync({
|
|
189
|
+
pk: tenant.pk,
|
|
190
|
+
sk: tenant.sk,
|
|
191
|
+
version: tenant.version,
|
|
192
|
+
attributes: {
|
|
193
|
+
...tenant.attributes,
|
|
194
|
+
setting: updatedSettings,
|
|
195
|
+
},
|
|
196
|
+
}, context);
|
|
197
|
+
}
|
|
198
|
+
sortGroups(groups) {
|
|
199
|
+
return groups.sort((a, b) => {
|
|
200
|
+
const countA = a.split('#').length - 1;
|
|
201
|
+
const countB = b.split('#').length - 1;
|
|
202
|
+
return countB !== countA ? countB - countA : a.localeCompare(b);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
exports.TenantService = TenantService;
|
|
207
|
+
exports.TenantService = TenantService = TenantService_1 = __decorate([
|
|
208
|
+
(0, common_2.Injectable)(),
|
|
209
|
+
__metadata("design:paramtypes", [core_1.CommandService,
|
|
210
|
+
core_1.DataService])
|
|
211
|
+
], TenantService);
|
|
212
|
+
//# sourceMappingURL=tenant.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.service.js","sourceRoot":"","sources":["../../src/services/tenant.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export interface TenantModuleOptions {
|
|
2
|
+
enableController?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<TenantModuleOptions, "register", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol, OPTIONS_TYPE: TenantModuleOptions & Partial<{}>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.OPTIONS_TYPE = exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
_a = new common_1.ConfigurableModuleBuilder().build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE;
|
|
7
|
+
//# sourceMappingURL=tenant.module-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.module-definition.js","sourceRoot":"","sources":["../src/tenant.module-definition.ts"],"names":[],"mappings":";;;;AAAA,2CAA0D;AAM7C,KACX,IAAI,kCAAyB,EAAuB,CAAC,KAAK,EAAE,EAD/C,+BAAuB,+BAAE,4BAAoB,4BAAE,oBAAY,mBACZ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TenantModule = void 0;
|
|
10
|
+
const core_1 = require("@mbc-cqrs-serverless/core");
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const controllers_1 = require("./controllers");
|
|
14
|
+
const services_1 = require("./services");
|
|
15
|
+
const tenant_module_definition_1 = require("./tenant.module-definition");
|
|
16
|
+
let TenantModule = class TenantModule extends tenant_module_definition_1.ConfigurableModuleClass {
|
|
17
|
+
static register(options) {
|
|
18
|
+
const module = super.register(options);
|
|
19
|
+
if (options.enableController) {
|
|
20
|
+
if (!module.controllers) {
|
|
21
|
+
module.controllers = [];
|
|
22
|
+
}
|
|
23
|
+
module.controllers.push(controllers_1.TenantController);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
...module,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.TenantModule = TenantModule;
|
|
31
|
+
exports.TenantModule = TenantModule = __decorate([
|
|
32
|
+
(0, common_1.Module)({
|
|
33
|
+
imports: [
|
|
34
|
+
core_1.CommandModule.register({
|
|
35
|
+
tableName: constants_1.TABLE_NAME,
|
|
36
|
+
}),
|
|
37
|
+
core_1.DataStoreModule,
|
|
38
|
+
core_1.QueueModule,
|
|
39
|
+
],
|
|
40
|
+
providers: [services_1.TenantService],
|
|
41
|
+
exports: [services_1.TenantService],
|
|
42
|
+
})
|
|
43
|
+
], TenantModule);
|
|
44
|
+
//# sourceMappingURL=tenant.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.module.js","sourceRoot":"","sources":["../src/tenant.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAIkC;AAClC,2CAAsD;AAEtD,2CAAwC;AACxC,+CAAgD;AAChD,yCAA0C;AAC1C,yEAGmC;AAa5B,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kDAAuB;IACvD,MAAM,CAAC,QAAQ,CAAC,OAA4B;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAA;YACzB,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,8BAAgB,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO;YACL,GAAG,MAAM;SACV,CAAA;IACH,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IAXxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAa,CAAC,QAAQ,CAAC;gBACrB,SAAS,EAAE,sBAAU;aACtB,CAAC;YACF,sBAAe;YACf,kBAAW;SACZ;QACD,SAAS,EAAE,CAAC,wBAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,wBAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAcxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
// Path to the JSON file
|
|
7
|
+
const jsonFilePath = (0, path_1.resolve)(__dirname, '../../../../prisma/dynamodbs/cqrs.json'); // Replace with your actual file name
|
|
8
|
+
try {
|
|
9
|
+
// Read the JSON file
|
|
10
|
+
const rawData = (0, fs_1.readFileSync)(jsonFilePath, 'utf-8');
|
|
11
|
+
const jsonData = JSON.parse(rawData);
|
|
12
|
+
// Ensure jsonData is an array
|
|
13
|
+
if (!Array.isArray(jsonData)) {
|
|
14
|
+
throw new Error('The JSON content is not an array.');
|
|
15
|
+
}
|
|
16
|
+
// Add "master" to the array if it doesn't exist
|
|
17
|
+
if (!jsonData.includes(constants_1.TABLE_NAME)) {
|
|
18
|
+
jsonData.push(constants_1.TABLE_NAME);
|
|
19
|
+
}
|
|
20
|
+
// Write the updated JSON back to the file
|
|
21
|
+
(0, fs_1.writeFileSync)(jsonFilePath, JSON.stringify(jsonData, null, 2), 'utf-8');
|
|
22
|
+
}
|
|
23
|
+
catch (error) { }
|
|
24
|
+
//# sourceMappingURL=update-scheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-scheme.js","sourceRoot":"","sources":["../src/update-scheme.ts"],"names":[],"mappings":";;AAAA,2BAAgD;AAChD,+BAA8B;AAE9B,2CAAwC;AACxC,wBAAwB;AACxB,MAAM,YAAY,GAAG,IAAA,cAAO,EAC1B,SAAS,EACT,wCAAwC,CACzC,CAAA,CAAC,qCAAqC;AAEvC,IAAI,CAAC;IACH,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEpC,8BAA8B;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAU,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAA;IAC3B,CAAC;IAED,0CAA0C;IAC1C,IAAA,kBAAa,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AACzE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mbc-cqrs-serverless/tenant",
|
|
3
|
+
"version": "0.1.50-beta.0",
|
|
4
|
+
"description": "Multiple tenant management",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mbc",
|
|
7
|
+
"cqrs",
|
|
8
|
+
"serverless",
|
|
9
|
+
"framework",
|
|
10
|
+
"event-driven",
|
|
11
|
+
"backend",
|
|
12
|
+
"aws",
|
|
13
|
+
"lambda",
|
|
14
|
+
"ecs",
|
|
15
|
+
"fargate",
|
|
16
|
+
"step-functions",
|
|
17
|
+
"sqs",
|
|
18
|
+
"typescript"
|
|
19
|
+
],
|
|
20
|
+
"main": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"!dist/tsconfig.tsbuildinfo"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "rm -rf dist && nest build",
|
|
28
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
29
|
+
"postinstall": "node ./dist/update-scheme.js"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/mbc-net/mbc-cqrs-serverless.git"
|
|
34
|
+
},
|
|
35
|
+
"author": "Murakami Business Consulting, Inc.",
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/mbc-net/mbc-cqrs-serverless/issues"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://mbc-cqrs-serverless.mbc-net.com/",
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@mbc-cqrs-serverless/core": "^0.1.48-beta.0"
|
|
46
|
+
},
|
|
47
|
+
"gitHead": "d61475400eb1b00a1c427769875d2f056e48c73c"
|
|
48
|
+
}
|