@forklaunch/implementation-iam-base 0.1.16 → 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/lib/eject/services/organization.service.ts +13 -13
- package/lib/eject/services/permission.service.ts +35 -28
- package/lib/eject/services/role.service.ts +29 -29
- package/lib/eject/services/user.service.ts +37 -32
- package/lib/services/organization.service.d.ts +6 -6
- package/lib/services/organization.service.d.ts.map +1 -1
- package/lib/services/organization.service.js +10 -10
- package/lib/services/permission.service.d.ts +6 -6
- package/lib/services/permission.service.d.ts.map +1 -1
- package/lib/services/permission.service.js +32 -25
- package/lib/services/role.service.d.ts +2 -2
- package/lib/services/role.service.d.ts.map +1 -1
- package/lib/services/role.service.js +27 -22
- package/lib/services/user.service.d.ts +10 -10
- package/lib/services/user.service.d.ts.map +1 -1
- package/lib/services/user.service.js +30 -25
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
RoleService
|
|
4
4
|
} from '@forklaunch/interfaces-iam/interfaces';
|
|
5
5
|
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
6
|
-
import {
|
|
7
|
-
RequestDtoMapperConstructor,
|
|
8
|
-
ResponseDtoMapperConstructor
|
|
9
|
-
} from '@forklaunch/core/mappers';
|
|
10
6
|
import {
|
|
11
7
|
MetricsDefinition,
|
|
12
8
|
OpenTelemetryCollector
|
|
13
9
|
} from '@forklaunch/core/http';
|
|
10
|
+
import {
|
|
11
|
+
RequestDtoMapperConstructor,
|
|
12
|
+
ResponseDtoMapperConstructor
|
|
13
|
+
} from '@forklaunch/core/mappers';
|
|
14
14
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
15
15
|
import {
|
|
16
16
|
CreatePermissionDto,
|
|
@@ -52,7 +52,7 @@ export declare class BasePermissionService<
|
|
|
52
52
|
protected roleServiceFactory: () => RoleService;
|
|
53
53
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
54
54
|
protected schemaValidator: SchemaValidator;
|
|
55
|
-
protected
|
|
55
|
+
protected mappers: {
|
|
56
56
|
PermissionDtoMapper: ResponseDtoMapperConstructor<
|
|
57
57
|
SchemaValidator,
|
|
58
58
|
Dto['PermissionDtoMapper'],
|
|
@@ -79,7 +79,7 @@ export declare class BasePermissionService<
|
|
|
79
79
|
roleServiceFactory: () => RoleService,
|
|
80
80
|
openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
81
81
|
schemaValidator: SchemaValidator,
|
|
82
|
-
|
|
82
|
+
mappers: {
|
|
83
83
|
PermissionDtoMapper: ResponseDtoMapperConstructor<
|
|
84
84
|
SchemaValidator,
|
|
85
85
|
Dto['PermissionDtoMapper'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../services/permission.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../services/permission.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,25 +4,25 @@ export class BasePermissionService {
|
|
|
4
4
|
roleServiceFactory;
|
|
5
5
|
openTelemetryCollector;
|
|
6
6
|
schemaValidator;
|
|
7
|
-
|
|
8
|
-
#
|
|
7
|
+
mappers;
|
|
8
|
+
#mappers;
|
|
9
9
|
constructor(
|
|
10
10
|
em,
|
|
11
11
|
roleServiceFactory,
|
|
12
12
|
openTelemetryCollector,
|
|
13
13
|
schemaValidator,
|
|
14
|
-
|
|
14
|
+
mappers
|
|
15
15
|
) {
|
|
16
16
|
this.em = em;
|
|
17
17
|
this.roleServiceFactory = roleServiceFactory;
|
|
18
18
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
19
19
|
this.schemaValidator = schemaValidator;
|
|
20
|
-
this.
|
|
21
|
-
this.#
|
|
20
|
+
this.mappers = mappers;
|
|
21
|
+
this.#mappers = transformIntoInternalDtoMapper(mappers, schemaValidator);
|
|
22
22
|
}
|
|
23
23
|
// start: global helper functions
|
|
24
24
|
async updateRolesWithPermissions(roles, permissions) {
|
|
25
|
-
return
|
|
25
|
+
return Promise.all(
|
|
26
26
|
roles.map(async (role) => {
|
|
27
27
|
permissions.forEach((permission) => role.permissions.add(permission));
|
|
28
28
|
return role;
|
|
@@ -30,7 +30,7 @@ export class BasePermissionService {
|
|
|
30
30
|
);
|
|
31
31
|
}
|
|
32
32
|
async removePermissionsFromRoles(roles, permissions) {
|
|
33
|
-
return
|
|
33
|
+
return Promise.all(
|
|
34
34
|
roles.map(async (role) => {
|
|
35
35
|
permissions.forEach((permission) =>
|
|
36
36
|
role.permissions.remove(permission)
|
|
@@ -41,12 +41,14 @@ export class BasePermissionService {
|
|
|
41
41
|
}
|
|
42
42
|
async getBatchRoles(roleIds, em) {
|
|
43
43
|
return roleIds
|
|
44
|
-
?
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
this
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
? await Promise.all(
|
|
45
|
+
(await this.roleServiceFactory().getBatchRoles(roleIds, em)).map(
|
|
46
|
+
async (role) => {
|
|
47
|
+
return (em ?? this.em).merge(
|
|
48
|
+
await this.#mappers.RoleDtoMapper.deserializeDtoToEntity(role)
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
)
|
|
50
52
|
)
|
|
51
53
|
: [];
|
|
52
54
|
}
|
|
@@ -62,7 +64,7 @@ export class BasePermissionService {
|
|
|
62
64
|
async extractCreatePermissionDtoToEntityData(permissionDto, em) {
|
|
63
65
|
return {
|
|
64
66
|
permission: (em ?? this.em).merge(
|
|
65
|
-
this.#
|
|
67
|
+
await this.#mappers.CreatePermissionDtoMapper.deserializeDtoToEntity(
|
|
66
68
|
permissionDto
|
|
67
69
|
)
|
|
68
70
|
),
|
|
@@ -79,7 +81,7 @@ export class BasePermissionService {
|
|
|
79
81
|
await (em ?? this.em).transactional(async (innerEm) => {
|
|
80
82
|
await innerEm.persist([permission, ...roles]);
|
|
81
83
|
});
|
|
82
|
-
return this.#
|
|
84
|
+
return this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
83
85
|
}
|
|
84
86
|
async createBatchPermissions(permissionDtos, em) {
|
|
85
87
|
const rolesCache = {};
|
|
@@ -113,24 +115,27 @@ export class BasePermissionService {
|
|
|
113
115
|
...Object.values(rolesCache)
|
|
114
116
|
]);
|
|
115
117
|
});
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
+
return Promise.all(
|
|
119
|
+
permissions.map(async (permission) =>
|
|
120
|
+
this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission)
|
|
121
|
+
)
|
|
118
122
|
);
|
|
119
123
|
}
|
|
120
124
|
async getPermission(idDto, em) {
|
|
121
125
|
const permission = await (em ?? this.em).findOneOrFail('Permission', idDto);
|
|
122
|
-
return this.#
|
|
126
|
+
return this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
123
127
|
}
|
|
124
128
|
async getBatchPermissions(idsDto, em) {
|
|
125
|
-
return
|
|
126
|
-
(permission) =>
|
|
127
|
-
this.#
|
|
129
|
+
return Promise.all(
|
|
130
|
+
(await (em ?? this.em).find('Permission', idsDto)).map((permission) =>
|
|
131
|
+
this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission)
|
|
132
|
+
)
|
|
128
133
|
);
|
|
129
134
|
}
|
|
130
135
|
// start: updatePermission helper functions
|
|
131
136
|
updatePermissionDto = async (permissionDto, em) => {
|
|
132
137
|
const permission =
|
|
133
|
-
this.#
|
|
138
|
+
await this.#mappers.UpdatePermissionDtoMapper.deserializeDtoToEntity(
|
|
134
139
|
permissionDto
|
|
135
140
|
);
|
|
136
141
|
const addToRoles = permissionDto.addToRolesIds
|
|
@@ -158,7 +163,7 @@ export class BasePermissionService {
|
|
|
158
163
|
if (!em) {
|
|
159
164
|
this.em.flush();
|
|
160
165
|
}
|
|
161
|
-
return this.#
|
|
166
|
+
return this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
162
167
|
}
|
|
163
168
|
async updateBatchPermissions(permissionDtos, em) {
|
|
164
169
|
const rolesCache = {};
|
|
@@ -188,8 +193,10 @@ export class BasePermissionService {
|
|
|
188
193
|
...Object.values(rolesCache)
|
|
189
194
|
]);
|
|
190
195
|
});
|
|
191
|
-
return
|
|
192
|
-
|
|
196
|
+
return Promise.all(
|
|
197
|
+
permissions.map((permission) =>
|
|
198
|
+
this.#mappers.PermissionDtoMapper.serializeEntityToDto(permission)
|
|
199
|
+
)
|
|
193
200
|
);
|
|
194
201
|
}
|
|
195
202
|
async deletePermission(idDto, em) {
|
|
@@ -55,7 +55,7 @@ export declare class BaseRoleService<
|
|
|
55
55
|
em: EntityManager;
|
|
56
56
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
57
57
|
protected schemaValidator: SchemaValidator;
|
|
58
|
-
protected
|
|
58
|
+
protected mappers: {
|
|
59
59
|
RoleDtoMapper: ResponseDtoMapperConstructor<
|
|
60
60
|
SchemaValidator,
|
|
61
61
|
Dto['RoleDtoMapper'],
|
|
@@ -76,7 +76,7 @@ export declare class BaseRoleService<
|
|
|
76
76
|
em: EntityManager,
|
|
77
77
|
openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
78
78
|
schemaValidator: SchemaValidator,
|
|
79
|
-
|
|
79
|
+
mappers: {
|
|
80
80
|
RoleDtoMapper: ResponseDtoMapperConstructor<
|
|
81
81
|
SchemaValidator,
|
|
82
82
|
Dto['RoleDtoMapper'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../services/role.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,OAAO,EACP,aAAa,EACd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAAa,eAAe,CAC1B,eAAe,SAAS,kBAAkB,EAC1C,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EACrD,GAAG,SAAS;IACV,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,aAAa,CAAC;IACnC,mBAAmB,EAAE,aAAa,CAAC;CACpC,GAAG;IACF,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,aAAa,CAAC;IACnC,mBAAmB,EAAE,aAAa,CAAC;CACpC,EACD,QAAQ,SAAS;IACf,aAAa,EAAE,+BAA+B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,mBAAmB,EAAE,+BAA+B,CAClD,OAAO,EACP,aAAa,CACd,CAAC;IACF,mBAAmB,EAAE,+BAA+B,CAClD,OAAO,EACP,aAAa,CACd,CAAC;CACH,GAAG;IACF,aAAa,EAAE,+BAA+B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,mBAAmB,EAAE,+BAA+B,CAClD,OAAO,EACP,aAAa,CACd,CAAC;IACF,mBAAmB,EAAE,+BAA+B,CAClD,OAAO,EACP,aAAa,CACd,CAAC;CACH,CACD,YAAW,WAAW;;IASb,EAAE,EAAE,aAAa;IACxB,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,OAAO,CAAC;IACjE,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../services/role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,65 +3,70 @@ export class BaseRoleService {
|
|
|
3
3
|
em;
|
|
4
4
|
openTelemetryCollector;
|
|
5
5
|
schemaValidator;
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
constructor(em, openTelemetryCollector, schemaValidator,
|
|
6
|
+
mappers;
|
|
7
|
+
#mappers;
|
|
8
|
+
constructor(em, openTelemetryCollector, schemaValidator, mappers) {
|
|
9
9
|
this.em = em;
|
|
10
10
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
11
11
|
this.schemaValidator = schemaValidator;
|
|
12
|
-
this.
|
|
13
|
-
this.#
|
|
12
|
+
this.mappers = mappers;
|
|
13
|
+
this.#mappers = transformIntoInternalDtoMapper(mappers, schemaValidator);
|
|
14
14
|
}
|
|
15
15
|
async createRole(roleDto, em) {
|
|
16
|
-
// TODO: Think about removing static method here, since we need specific args
|
|
17
16
|
const role =
|
|
18
|
-
this.#
|
|
17
|
+
await this.#mappers.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
|
|
19
18
|
await (em ?? this.em).transactional((em) => em.persist(role));
|
|
20
|
-
return this.#
|
|
19
|
+
return this.#mappers.RoleDtoMapper.serializeEntityToDto(role);
|
|
21
20
|
}
|
|
22
21
|
async createBatchRoles(roleDtos, em) {
|
|
23
22
|
const roles = await Promise.all(
|
|
24
23
|
roleDtos.map(async (roleDto) =>
|
|
25
|
-
this.#
|
|
24
|
+
this.#mappers.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)
|
|
26
25
|
)
|
|
27
26
|
);
|
|
28
27
|
await (em ?? this.em).transactional((em) => em.persist(roles));
|
|
29
|
-
return
|
|
30
|
-
|
|
28
|
+
return Promise.all(
|
|
29
|
+
roles.map((role) =>
|
|
30
|
+
this.#mappers.RoleDtoMapper.serializeEntityToDto(role)
|
|
31
|
+
)
|
|
31
32
|
);
|
|
32
33
|
}
|
|
33
34
|
async getRole(idDto, em) {
|
|
34
35
|
const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
|
|
35
36
|
populate: ['id', '*']
|
|
36
37
|
});
|
|
37
|
-
return this.#
|
|
38
|
+
return this.#mappers.RoleDtoMapper.serializeEntityToDto(role);
|
|
38
39
|
}
|
|
39
40
|
async getBatchRoles(idsDto, em) {
|
|
40
|
-
return (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
return Promise.all(
|
|
42
|
+
(
|
|
43
|
+
await (em ?? this.em).find('Role', idsDto, {
|
|
44
|
+
populate: ['id', '*']
|
|
45
|
+
})
|
|
46
|
+
).map((role) => this.#mappers.RoleDtoMapper.serializeEntityToDto(role))
|
|
47
|
+
);
|
|
45
48
|
}
|
|
46
49
|
async updateRole(roleDto, em) {
|
|
47
50
|
let role =
|
|
48
|
-
this.#
|
|
51
|
+
await this.#mappers.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto);
|
|
49
52
|
await (em ?? this.em).transactional(async (em) => {
|
|
50
53
|
role = await em.upsert('Role', role);
|
|
51
54
|
});
|
|
52
|
-
return this.#
|
|
55
|
+
return this.#mappers.RoleDtoMapper.serializeEntityToDto(role);
|
|
53
56
|
}
|
|
54
57
|
async updateBatchRoles(roleDtos, em) {
|
|
55
58
|
let roles = await Promise.all(
|
|
56
59
|
roleDtos.map(async (roleDto) =>
|
|
57
|
-
this.#
|
|
60
|
+
this.#mappers.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)
|
|
58
61
|
)
|
|
59
62
|
);
|
|
60
63
|
await (em ?? this.em).transactional(async (em) => {
|
|
61
64
|
roles = await em.upsertMany('Role', roles);
|
|
62
65
|
});
|
|
63
|
-
return
|
|
64
|
-
|
|
66
|
+
return Promise.all(
|
|
67
|
+
roles.map((role) =>
|
|
68
|
+
this.#mappers.RoleDtoMapper.serializeEntityToDto(role)
|
|
69
|
+
)
|
|
65
70
|
);
|
|
66
71
|
}
|
|
67
72
|
async deleteRole(idDto, em) {
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
UserService
|
|
5
5
|
} from '@forklaunch/interfaces-iam/interfaces';
|
|
6
6
|
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
7
|
-
import {
|
|
8
|
-
RequestDtoMapperConstructor,
|
|
9
|
-
ResponseDtoMapperConstructor
|
|
10
|
-
} from '@forklaunch/core/mappers';
|
|
11
7
|
import {
|
|
12
8
|
MetricsDefinition,
|
|
13
9
|
OpenTelemetryCollector
|
|
14
10
|
} from '@forklaunch/core/http';
|
|
11
|
+
import {
|
|
12
|
+
RequestDtoMapperConstructor,
|
|
13
|
+
ResponseDtoMapperConstructor
|
|
14
|
+
} from '@forklaunch/core/mappers';
|
|
15
15
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
16
16
|
import {
|
|
17
17
|
CreateUserDto,
|
|
@@ -51,7 +51,7 @@ export declare class BaseUserService<
|
|
|
51
51
|
protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
|
|
52
52
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
53
53
|
protected schemaValidator: SchemaValidator;
|
|
54
|
-
protected
|
|
54
|
+
protected mappers: {
|
|
55
55
|
UserDtoMapper: ResponseDtoMapperConstructor<
|
|
56
56
|
SchemaValidator,
|
|
57
57
|
Dto['UserDtoMapper'],
|
|
@@ -64,7 +64,7 @@ export declare class BaseUserService<
|
|
|
64
64
|
(
|
|
65
65
|
dto: never,
|
|
66
66
|
passwordEncryptionPublicKeyPath: string
|
|
67
|
-
) => Entities['UpdateUserDtoMapper']
|
|
67
|
+
) => Promise<Entities['UpdateUserDtoMapper']>
|
|
68
68
|
>;
|
|
69
69
|
UpdateUserDtoMapper: RequestDtoMapperConstructor<
|
|
70
70
|
SchemaValidator,
|
|
@@ -73,7 +73,7 @@ export declare class BaseUserService<
|
|
|
73
73
|
(
|
|
74
74
|
dto: never,
|
|
75
75
|
passwordEncryptionPublicKeyPath: string
|
|
76
|
-
) => Entities['UpdateUserDtoMapper']
|
|
76
|
+
) => Promise<Entities['UpdateUserDtoMapper']>
|
|
77
77
|
>;
|
|
78
78
|
};
|
|
79
79
|
constructor(
|
|
@@ -83,7 +83,7 @@ export declare class BaseUserService<
|
|
|
83
83
|
organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
|
|
84
84
|
openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
85
85
|
schemaValidator: SchemaValidator,
|
|
86
|
-
|
|
86
|
+
mappers: {
|
|
87
87
|
UserDtoMapper: ResponseDtoMapperConstructor<
|
|
88
88
|
SchemaValidator,
|
|
89
89
|
Dto['UserDtoMapper'],
|
|
@@ -96,7 +96,7 @@ export declare class BaseUserService<
|
|
|
96
96
|
(
|
|
97
97
|
dto: never,
|
|
98
98
|
passwordEncryptionPublicKeyPath: string
|
|
99
|
-
) => Entities['UpdateUserDtoMapper']
|
|
99
|
+
) => Promise<Entities['UpdateUserDtoMapper']>
|
|
100
100
|
>;
|
|
101
101
|
UpdateUserDtoMapper: RequestDtoMapperConstructor<
|
|
102
102
|
SchemaValidator,
|
|
@@ -105,7 +105,7 @@ export declare class BaseUserService<
|
|
|
105
105
|
(
|
|
106
106
|
dto: never,
|
|
107
107
|
passwordEncryptionPublicKeyPath: string
|
|
108
|
-
) => Entities['UpdateUserDtoMapper']
|
|
108
|
+
) => Promise<Entities['UpdateUserDtoMapper']>
|
|
109
109
|
>;
|
|
110
110
|
}
|
|
111
111
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../services/user.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ export class BaseUserService {
|
|
|
6
6
|
organizationServiceFactory;
|
|
7
7
|
openTelemetryCollector;
|
|
8
8
|
schemaValidator;
|
|
9
|
-
|
|
10
|
-
#
|
|
9
|
+
mappers;
|
|
10
|
+
#mappers;
|
|
11
11
|
constructor(
|
|
12
12
|
em,
|
|
13
13
|
passwordEncryptionPublicKeyPath,
|
|
@@ -15,7 +15,7 @@ export class BaseUserService {
|
|
|
15
15
|
organizationServiceFactory,
|
|
16
16
|
openTelemetryCollector,
|
|
17
17
|
schemaValidator,
|
|
18
|
-
|
|
18
|
+
mappers
|
|
19
19
|
) {
|
|
20
20
|
this.em = em;
|
|
21
21
|
this.passwordEncryptionPublicKeyPath = passwordEncryptionPublicKeyPath;
|
|
@@ -23,24 +23,23 @@ export class BaseUserService {
|
|
|
23
23
|
this.organizationServiceFactory = organizationServiceFactory;
|
|
24
24
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
25
25
|
this.schemaValidator = schemaValidator;
|
|
26
|
-
this.
|
|
27
|
-
this.#
|
|
26
|
+
this.mappers = mappers;
|
|
27
|
+
this.#mappers = transformIntoInternalDtoMapper(mappers, schemaValidator);
|
|
28
28
|
}
|
|
29
29
|
async createUser(userDto, em) {
|
|
30
|
-
const user =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
);
|
|
30
|
+
const user = await this.#mappers.CreateUserDtoMapper.deserializeDtoToEntity(
|
|
31
|
+
userDto,
|
|
32
|
+
this.passwordEncryptionPublicKeyPath
|
|
33
|
+
);
|
|
35
34
|
((await em) ?? this.em).transactional(async (em) => {
|
|
36
35
|
await em.persist(user);
|
|
37
36
|
});
|
|
38
|
-
return this.#
|
|
37
|
+
return this.#mappers.UserDtoMapper.serializeEntityToDto(user);
|
|
39
38
|
}
|
|
40
39
|
async createBatchUsers(userDtos, em) {
|
|
41
40
|
const users = await Promise.all(
|
|
42
41
|
userDtos.map(async (createUserDto) =>
|
|
43
|
-
this.#
|
|
42
|
+
this.#mappers.CreateUserDtoMapper.deserializeDtoToEntity(
|
|
44
43
|
createUserDto,
|
|
45
44
|
this.passwordEncryptionPublicKeyPath
|
|
46
45
|
)
|
|
@@ -49,37 +48,41 @@ export class BaseUserService {
|
|
|
49
48
|
await (em ?? this.em).transactional(async (em) => {
|
|
50
49
|
await em.persist(users);
|
|
51
50
|
});
|
|
52
|
-
return
|
|
53
|
-
|
|
51
|
+
return Promise.all(
|
|
52
|
+
users.map((user) =>
|
|
53
|
+
this.#mappers.UserDtoMapper.serializeEntityToDto(user)
|
|
54
|
+
)
|
|
54
55
|
);
|
|
55
56
|
}
|
|
56
57
|
async getUser(idDto, em) {
|
|
57
58
|
const user = await (em ?? this.em).findOneOrFail('User', idDto, {
|
|
58
59
|
populate: ['id', '*']
|
|
59
60
|
});
|
|
60
|
-
return this.#
|
|
61
|
+
return this.#mappers.UserDtoMapper.serializeEntityToDto(user);
|
|
61
62
|
}
|
|
62
63
|
async getBatchUsers(idsDto, em) {
|
|
63
|
-
return (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
return Promise.all(
|
|
65
|
+
(
|
|
66
|
+
await (em ?? this.em).find('User', idsDto, {
|
|
67
|
+
populate: ['id', '*']
|
|
68
|
+
})
|
|
69
|
+
).map((user) => this.#mappers.UserDtoMapper.serializeEntityToDto(user))
|
|
70
|
+
);
|
|
68
71
|
}
|
|
69
72
|
async updateUser(userDto, em) {
|
|
70
|
-
let user = this.#
|
|
73
|
+
let user = await this.#mappers.UpdateUserDtoMapper.deserializeDtoToEntity(
|
|
71
74
|
userDto,
|
|
72
75
|
this.passwordEncryptionPublicKeyPath
|
|
73
76
|
);
|
|
74
77
|
await (em ?? this.em).transactional(async (localEm) => {
|
|
75
78
|
user = await localEm.upsert(user);
|
|
76
79
|
});
|
|
77
|
-
return this.#
|
|
80
|
+
return this.#mappers.UserDtoMapper.serializeEntityToDto(user);
|
|
78
81
|
}
|
|
79
82
|
async updateBatchUsers(userDtos, em) {
|
|
80
83
|
let users = await Promise.all(
|
|
81
84
|
userDtos.map(async (updateUserDto) =>
|
|
82
|
-
this.#
|
|
85
|
+
this.#mappers.UpdateUserDtoMapper.deserializeDtoToEntity(
|
|
83
86
|
updateUserDto,
|
|
84
87
|
this.passwordEncryptionPublicKeyPath
|
|
85
88
|
)
|
|
@@ -88,8 +91,10 @@ export class BaseUserService {
|
|
|
88
91
|
await (em ?? this.em).transactional(async (localEm) => {
|
|
89
92
|
users = await localEm.upsertMany(users);
|
|
90
93
|
});
|
|
91
|
-
return
|
|
92
|
-
|
|
94
|
+
return Promise.all(
|
|
95
|
+
users.map((user) =>
|
|
96
|
+
this.#mappers.UserDtoMapper.serializeEntityToDto(user)
|
|
97
|
+
)
|
|
93
98
|
);
|
|
94
99
|
}
|
|
95
100
|
async deleteUser(idDto, em) {
|