@forklaunch/implementation-iam-base 0.3.1 → 0.3.3

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.
@@ -1,203 +1,507 @@
1
- import { IdDto, IdsDto } from '@forklaunch/common';
2
- import { MetricsDefinition, OpenTelemetryCollector, TelemetryOptions } from '@forklaunch/core/http';
3
- import { ResponseDtoMapperConstructor, RequestDtoMapperConstructor } from '@forklaunch/core/mappers';
4
- import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
5
- import { OrganizationService, PermissionService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
6
- import { OrganizationDto, CreateOrganizationDto, UpdateOrganizationDto, PermissionDto, CreatePermissionDto, UpdatePermissionDto, UpdateRoleDto, RoleDto, CreateRoleDto, UserDto, CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
1
+ import { InstanceTypeRecord, IdDto, IdsDto } from '@forklaunch/common';
2
+ import {
3
+ OpenTelemetryCollector,
4
+ MetricsDefinition,
5
+ TelemetryOptions
6
+ } from '@forklaunch/core/http';
7
+ import {
8
+ OrganizationService,
9
+ PermissionService,
10
+ RoleService,
11
+ UserService
12
+ } from '@forklaunch/interfaces-iam/interfaces';
13
+ import {
14
+ ResponseMapperConstructor,
15
+ RequestMapperConstructor,
16
+ InternalMapper
17
+ } from '@forklaunch/internal';
7
18
  import { AnySchemaValidator } from '@forklaunch/validator';
8
19
  import { EntityManager } from '@mikro-orm/core';
20
+ import {
21
+ OrganizationDto,
22
+ CreateOrganizationDto,
23
+ UpdateOrganizationDto,
24
+ PermissionDto,
25
+ CreatePermissionDto,
26
+ UpdatePermissionDto,
27
+ UpdateRoleDto,
28
+ RoleDto,
29
+ CreateRoleDto,
30
+ UserDto,
31
+ CreateUserDto,
32
+ UpdateUserDto
33
+ } from '@forklaunch/interfaces-iam/types';
34
+ import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
9
35
 
10
- declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
11
- OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
12
- CreateOrganizationDtoMapper: CreateOrganizationDto;
13
- UpdateOrganizationDtoMapper: UpdateOrganizationDto;
14
- } = {
15
- OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
16
- CreateOrganizationDtoMapper: CreateOrganizationDto;
17
- UpdateOrganizationDtoMapper: UpdateOrganizationDto;
18
- }, Entities extends {
19
- OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
20
- CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
21
- UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
22
- } = {
23
- OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
24
- CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
25
- UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
26
- }> implements OrganizationService<OrganizationStatus> {
27
- #private;
28
- em: EntityManager;
29
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
30
- protected schemaValidator: SchemaValidator;
31
- protected mappers: {
32
- OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
33
- CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
34
- UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
35
- };
36
- private evaluatedTelemetryOptions;
37
- constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
38
- OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
39
- CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
40
- UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
41
- }, options?: {
42
- telemetry?: TelemetryOptions;
43
- });
44
- createOrganization(organizationDto: Dto['CreateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
45
- getOrganization(idDto: IdDto, em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
46
- updateOrganization(organizationDto: Dto['UpdateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
47
- deleteOrganization(idDto: IdDto, em?: EntityManager): Promise<void>;
36
+ type OrganizationDtos<OrganizationStatus> = {
37
+ OrganizationMapper: OrganizationDto<OrganizationStatus>;
38
+ CreateOrganizationMapper: CreateOrganizationDto;
39
+ UpdateOrganizationMapper: UpdateOrganizationDto;
40
+ };
41
+ type PermissionDtos = {
42
+ PermissionMapper: PermissionDto;
43
+ CreatePermissionMapper: CreatePermissionDto;
44
+ UpdatePermissionMapper: UpdatePermissionDto;
45
+ RoleEntityMapper: UpdateRoleDto;
46
+ };
47
+ type RoleDtos = {
48
+ RoleMapper: RoleDto;
49
+ CreateRoleMapper: CreateRoleDto;
50
+ UpdateRoleMapper: UpdateRoleDto;
51
+ };
52
+ type UserDtos = {
53
+ UserMapper: UserDto;
54
+ CreateUserMapper: CreateUserDto;
55
+ UpdateUserMapper: UpdateUserDto;
56
+ };
57
+
58
+ type OrganizationEntities<OrganizationStatus> = {
59
+ OrganizationMapper: MapNestedDtoArraysToCollections<
60
+ OrganizationDto<OrganizationStatus>,
61
+ 'users'
62
+ >;
63
+ CreateOrganizationMapper: MapNestedDtoArraysToCollections<
64
+ OrganizationDto<OrganizationStatus>,
65
+ 'users'
66
+ >;
67
+ UpdateOrganizationMapper: MapNestedDtoArraysToCollections<
68
+ OrganizationDto<OrganizationStatus>,
69
+ 'users'
70
+ >;
71
+ };
72
+ type PermissionEntities = {
73
+ PermissionMapper: PermissionDto;
74
+ CreatePermissionMapper: PermissionDto;
75
+ UpdatePermissionMapper: PermissionDto;
76
+ RoleEntityMapper: MapNestedDtoArraysToCollections<
77
+ UpdateRoleDto,
78
+ 'permissions'
79
+ >;
80
+ };
81
+ type RoleEntities = {
82
+ RoleMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
83
+ CreateRoleMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
84
+ UpdateRoleMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
85
+ };
86
+ type UserEntities = {
87
+ UserMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
88
+ CreateUserMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
89
+ UpdateUserMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
90
+ };
91
+
92
+ declare class BaseOrganizationService<
93
+ SchemaValidator extends AnySchemaValidator,
94
+ OrganizationStatus,
95
+ MapperEntities extends OrganizationEntities<OrganizationStatus>,
96
+ MapperDtos extends
97
+ OrganizationDtos<OrganizationStatus> = OrganizationDtos<OrganizationStatus>
98
+ > implements OrganizationService<OrganizationStatus>
99
+ {
100
+ em: EntityManager;
101
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
102
+ protected schemaValidator: SchemaValidator;
103
+ protected mappers: {
104
+ OrganizationMapper: ResponseMapperConstructor<
105
+ SchemaValidator,
106
+ MapperDtos['OrganizationMapper'],
107
+ MapperEntities['OrganizationMapper']
108
+ >;
109
+ CreateOrganizationMapper: RequestMapperConstructor<
110
+ SchemaValidator,
111
+ MapperDtos['CreateOrganizationMapper'],
112
+ MapperEntities['CreateOrganizationMapper'],
113
+ (
114
+ dto: MapperDtos['CreateOrganizationMapper'],
115
+ em: EntityManager
116
+ ) => Promise<MapperEntities['CreateOrganizationMapper']>
117
+ >;
118
+ UpdateOrganizationMapper: RequestMapperConstructor<
119
+ SchemaValidator,
120
+ MapperDtos['UpdateOrganizationMapper'],
121
+ MapperEntities['UpdateOrganizationMapper'],
122
+ (
123
+ dto: MapperDtos['UpdateOrganizationMapper'],
124
+ em: EntityManager
125
+ ) => Promise<MapperEntities['UpdateOrganizationMapper']>
126
+ >;
127
+ };
128
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
129
+ private evaluatedTelemetryOptions;
130
+ constructor(
131
+ em: EntityManager,
132
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
133
+ schemaValidator: SchemaValidator,
134
+ mappers: {
135
+ OrganizationMapper: ResponseMapperConstructor<
136
+ SchemaValidator,
137
+ MapperDtos['OrganizationMapper'],
138
+ MapperEntities['OrganizationMapper']
139
+ >;
140
+ CreateOrganizationMapper: RequestMapperConstructor<
141
+ SchemaValidator,
142
+ MapperDtos['CreateOrganizationMapper'],
143
+ MapperEntities['CreateOrganizationMapper'],
144
+ (
145
+ dto: MapperDtos['CreateOrganizationMapper'],
146
+ em: EntityManager
147
+ ) => Promise<MapperEntities['CreateOrganizationMapper']>
148
+ >;
149
+ UpdateOrganizationMapper: RequestMapperConstructor<
150
+ SchemaValidator,
151
+ MapperDtos['UpdateOrganizationMapper'],
152
+ MapperEntities['UpdateOrganizationMapper'],
153
+ (
154
+ dto: MapperDtos['UpdateOrganizationMapper'],
155
+ em: EntityManager
156
+ ) => Promise<MapperEntities['UpdateOrganizationMapper']>
157
+ >;
158
+ },
159
+ options?: {
160
+ telemetry?: TelemetryOptions;
161
+ }
162
+ );
163
+ createOrganization(
164
+ organizationDto: MapperDtos['CreateOrganizationMapper'],
165
+ em?: EntityManager
166
+ ): Promise<MapperDtos['OrganizationMapper']>;
167
+ getOrganization(
168
+ idDto: IdDto,
169
+ em?: EntityManager
170
+ ): Promise<MapperDtos['OrganizationMapper']>;
171
+ updateOrganization(
172
+ organizationDto: MapperDtos['UpdateOrganizationMapper'],
173
+ em?: EntityManager
174
+ ): Promise<MapperDtos['OrganizationMapper']>;
175
+ deleteOrganization(idDto: IdDto, em?: EntityManager): Promise<void>;
48
176
  }
49
177
 
50
- declare class BasePermissionService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
51
- PermissionDtoMapper: PermissionDto;
52
- CreatePermissionDtoMapper: CreatePermissionDto;
53
- UpdatePermissionDtoMapper: UpdatePermissionDto;
54
- RoleEntityMapper: UpdateRoleDto;
55
- } = {
56
- PermissionDtoMapper: PermissionDto;
57
- CreatePermissionDtoMapper: CreatePermissionDto;
58
- UpdatePermissionDtoMapper: UpdatePermissionDto;
59
- RoleEntityMapper: UpdateRoleDto;
60
- }, Entities extends {
61
- PermissionDtoMapper: PermissionDto;
62
- CreatePermissionDtoMapper: PermissionDto;
63
- UpdatePermissionDtoMapper: PermissionDto;
64
- RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
65
- } = {
66
- PermissionDtoMapper: PermissionDto;
67
- CreatePermissionDtoMapper: PermissionDto;
68
- UpdatePermissionDtoMapper: PermissionDto;
69
- RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
70
- }> implements PermissionService {
71
- #private;
72
- em: EntityManager;
73
- protected roleServiceFactory: () => RoleService;
74
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
75
- protected schemaValidator: SchemaValidator;
76
- protected mappers: {
77
- PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
78
- CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
79
- UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
80
- RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
81
- };
82
- private evaluatedTelemetryOptions;
83
- constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
84
- PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
85
- CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
86
- UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
87
- RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
88
- }, options?: {
89
- telemetry?: TelemetryOptions;
90
- });
91
- private updateRolesWithPermissions;
92
- private removePermissionsFromRoles;
93
- private getBatchRoles;
94
- private createPermissionDto;
95
- private extractCreatePermissionDtoToEntityData;
96
- createPermission(createPermissionDto: Dto['CreatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
97
- createBatchPermissions(permissionDtos: Dto['CreatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
98
- getPermission(idDto: IdDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
99
- getBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
100
- private updatePermissionDto;
101
- updatePermission(permissionDto: Dto['UpdatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
102
- updateBatchPermissions(permissionDtos: Dto['UpdatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
103
- deletePermission(idDto: IdDto, em?: EntityManager): Promise<void>;
104
- deleteBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<void>;
178
+ declare class BasePermissionService<
179
+ SchemaValidator extends AnySchemaValidator,
180
+ MapperEntities extends PermissionEntities,
181
+ MapperDto extends PermissionDtos = PermissionDtos
182
+ > implements PermissionService
183
+ {
184
+ em: EntityManager;
185
+ protected roleServiceFactory: () => RoleService;
186
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
187
+ protected schemaValidator: SchemaValidator;
188
+ protected mappers: {
189
+ PermissionMapper: ResponseMapperConstructor<
190
+ SchemaValidator,
191
+ MapperDto['PermissionMapper'],
192
+ MapperEntities['PermissionMapper']
193
+ >;
194
+ CreatePermissionMapper: RequestMapperConstructor<
195
+ SchemaValidator,
196
+ MapperDto['CreatePermissionMapper'],
197
+ MapperEntities['CreatePermissionMapper'],
198
+ (
199
+ dto: MapperDto['CreatePermissionMapper'],
200
+ em: EntityManager
201
+ ) => Promise<MapperEntities['CreatePermissionMapper']>
202
+ >;
203
+ UpdatePermissionMapper: RequestMapperConstructor<
204
+ SchemaValidator,
205
+ MapperDto['UpdatePermissionMapper'],
206
+ MapperEntities['UpdatePermissionMapper'],
207
+ (
208
+ dto: MapperDto['UpdatePermissionMapper'],
209
+ em: EntityManager
210
+ ) => Promise<MapperEntities['UpdatePermissionMapper']>
211
+ >;
212
+ RoleEntityMapper: RequestMapperConstructor<
213
+ SchemaValidator,
214
+ MapperDto['RoleEntityMapper'],
215
+ MapperEntities['RoleEntityMapper'],
216
+ (
217
+ dto: MapperDto['RoleEntityMapper'],
218
+ em: EntityManager
219
+ ) => Promise<MapperEntities['RoleEntityMapper']>
220
+ >;
221
+ };
222
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
223
+ private evaluatedTelemetryOptions;
224
+ constructor(
225
+ em: EntityManager,
226
+ roleServiceFactory: () => RoleService,
227
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
228
+ schemaValidator: SchemaValidator,
229
+ mappers: {
230
+ PermissionMapper: ResponseMapperConstructor<
231
+ SchemaValidator,
232
+ MapperDto['PermissionMapper'],
233
+ MapperEntities['PermissionMapper']
234
+ >;
235
+ CreatePermissionMapper: RequestMapperConstructor<
236
+ SchemaValidator,
237
+ MapperDto['CreatePermissionMapper'],
238
+ MapperEntities['CreatePermissionMapper'],
239
+ (
240
+ dto: MapperDto['CreatePermissionMapper'],
241
+ em: EntityManager
242
+ ) => Promise<MapperEntities['CreatePermissionMapper']>
243
+ >;
244
+ UpdatePermissionMapper: RequestMapperConstructor<
245
+ SchemaValidator,
246
+ MapperDto['UpdatePermissionMapper'],
247
+ MapperEntities['UpdatePermissionMapper'],
248
+ (
249
+ dto: MapperDto['UpdatePermissionMapper'],
250
+ em: EntityManager
251
+ ) => Promise<MapperEntities['UpdatePermissionMapper']>
252
+ >;
253
+ RoleEntityMapper: RequestMapperConstructor<
254
+ SchemaValidator,
255
+ MapperDto['RoleEntityMapper'],
256
+ MapperEntities['RoleEntityMapper'],
257
+ (
258
+ dto: MapperDto['RoleEntityMapper'],
259
+ em: EntityManager
260
+ ) => Promise<MapperEntities['RoleEntityMapper']>
261
+ >;
262
+ },
263
+ options?: {
264
+ telemetry?: TelemetryOptions;
265
+ }
266
+ );
267
+ private updateRolesWithPermissions;
268
+ private removePermissionsFromRoles;
269
+ private getBatchRoles;
270
+ private createPermissionDto;
271
+ private extractCreatePermissionDtoToEntityData;
272
+ createPermission(
273
+ createPermissionDto: MapperDto['CreatePermissionMapper'],
274
+ em?: EntityManager
275
+ ): Promise<MapperDto['PermissionMapper']>;
276
+ createBatchPermissions(
277
+ permissionDtos: MapperDto['CreatePermissionMapper'][],
278
+ em?: EntityManager
279
+ ): Promise<MapperDto['PermissionMapper'][]>;
280
+ getPermission(
281
+ idDto: IdDto,
282
+ em?: EntityManager
283
+ ): Promise<MapperDto['PermissionMapper']>;
284
+ getBatchPermissions(
285
+ idsDto: IdsDto,
286
+ em?: EntityManager
287
+ ): Promise<MapperDto['PermissionMapper'][]>;
288
+ private updatePermissionDto;
289
+ updatePermission(
290
+ permissionDto: MapperDto['UpdatePermissionMapper'],
291
+ em?: EntityManager
292
+ ): Promise<MapperDto['PermissionMapper']>;
293
+ updateBatchPermissions(
294
+ permissionDtos: MapperDto['UpdatePermissionMapper'][],
295
+ em?: EntityManager
296
+ ): Promise<MapperDto['PermissionMapper'][]>;
297
+ deletePermission(idDto: IdDto, em?: EntityManager): Promise<void>;
298
+ deleteBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<void>;
105
299
  }
106
300
 
107
- declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
108
- RoleDtoMapper: RoleDto;
109
- CreateRoleDtoMapper: CreateRoleDto;
110
- UpdateRoleDtoMapper: UpdateRoleDto;
111
- } = {
112
- RoleDtoMapper: RoleDto;
113
- CreateRoleDtoMapper: CreateRoleDto;
114
- UpdateRoleDtoMapper: UpdateRoleDto;
115
- }, Entities extends {
116
- RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
117
- CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
118
- UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
119
- } = {
120
- RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
121
- CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
122
- UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
123
- }> implements RoleService {
124
- #private;
125
- em: EntityManager;
126
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
127
- protected schemaValidator: SchemaValidator;
128
- protected mappers: {
129
- RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
130
- CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
131
- UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
132
- };
133
- private evaluatedTelemetryOptions;
134
- constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
135
- RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
136
- CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
137
- UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
138
- }, options?: {
139
- telemetry?: TelemetryOptions;
140
- });
141
- createRole(roleDto: Dto['CreateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
142
- createBatchRoles(roleDtos: Dto['CreateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
143
- getRole({ id }: IdDto, em?: EntityManager): Promise<RoleDto>;
144
- getBatchRoles({ ids }: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
145
- updateRole(roleDto: Dto['UpdateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
146
- updateBatchRoles(roleDtos: Dto['UpdateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
147
- deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
148
- deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
301
+ declare class BaseRoleService<
302
+ SchemaValidator extends AnySchemaValidator,
303
+ MapperEntities extends RoleEntities,
304
+ MapperDto extends RoleDtos = RoleDtos
305
+ > implements RoleService
306
+ {
307
+ em: EntityManager;
308
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
309
+ protected schemaValidator: SchemaValidator;
310
+ protected mappers: {
311
+ RoleMapper: ResponseMapperConstructor<
312
+ SchemaValidator,
313
+ MapperDto['RoleMapper'],
314
+ MapperEntities['RoleMapper']
315
+ >;
316
+ CreateRoleMapper: RequestMapperConstructor<
317
+ SchemaValidator,
318
+ MapperDto['CreateRoleMapper'],
319
+ MapperEntities['CreateRoleMapper'],
320
+ (
321
+ dto: MapperDto['CreateRoleMapper'],
322
+ em: EntityManager
323
+ ) => Promise<MapperEntities['CreateRoleMapper']>
324
+ >;
325
+ UpdateRoleMapper: RequestMapperConstructor<
326
+ SchemaValidator,
327
+ MapperDto['UpdateRoleMapper'],
328
+ MapperEntities['UpdateRoleMapper'],
329
+ (
330
+ dto: MapperDto['UpdateRoleMapper'],
331
+ em: EntityManager
332
+ ) => Promise<MapperEntities['UpdateRoleMapper']>
333
+ >;
334
+ };
335
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
336
+ private evaluatedTelemetryOptions;
337
+ constructor(
338
+ em: EntityManager,
339
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
340
+ schemaValidator: SchemaValidator,
341
+ mappers: {
342
+ RoleMapper: ResponseMapperConstructor<
343
+ SchemaValidator,
344
+ MapperDto['RoleMapper'],
345
+ MapperEntities['RoleMapper']
346
+ >;
347
+ CreateRoleMapper: RequestMapperConstructor<
348
+ SchemaValidator,
349
+ MapperDto['CreateRoleMapper'],
350
+ MapperEntities['CreateRoleMapper'],
351
+ (
352
+ dto: MapperDto['CreateRoleMapper'],
353
+ em: EntityManager
354
+ ) => Promise<MapperEntities['CreateRoleMapper']>
355
+ >;
356
+ UpdateRoleMapper: RequestMapperConstructor<
357
+ SchemaValidator,
358
+ MapperDto['UpdateRoleMapper'],
359
+ MapperEntities['UpdateRoleMapper'],
360
+ (
361
+ dto: MapperDto['UpdateRoleMapper'],
362
+ em: EntityManager
363
+ ) => Promise<MapperEntities['UpdateRoleMapper']>
364
+ >;
365
+ },
366
+ options?: {
367
+ telemetry?: TelemetryOptions;
368
+ }
369
+ );
370
+ createRole(
371
+ roleDto: MapperDto['CreateRoleMapper'],
372
+ em?: EntityManager
373
+ ): Promise<MapperDto['RoleMapper']>;
374
+ createBatchRoles(
375
+ roleDtos: MapperDto['CreateRoleMapper'][],
376
+ em?: EntityManager
377
+ ): Promise<MapperDto['RoleMapper'][]>;
378
+ getRole({ id }: IdDto, em?: EntityManager): Promise<RoleDto>;
379
+ getBatchRoles({ ids }: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
380
+ updateRole(
381
+ roleDto: MapperDto['UpdateRoleMapper'],
382
+ em?: EntityManager
383
+ ): Promise<MapperDto['RoleMapper']>;
384
+ updateBatchRoles(
385
+ roleDtos: MapperDto['UpdateRoleMapper'][],
386
+ em?: EntityManager
387
+ ): Promise<MapperDto['RoleMapper'][]>;
388
+ deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
389
+ deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
149
390
  }
150
391
 
151
- declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
152
- UserDtoMapper: UserDto;
153
- CreateUserDtoMapper: CreateUserDto;
154
- UpdateUserDtoMapper: UpdateUserDto;
155
- } = {
156
- UserDtoMapper: UserDto;
157
- CreateUserDtoMapper: CreateUserDto;
158
- UpdateUserDtoMapper: UpdateUserDto;
159
- }, Entities extends {
160
- UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
161
- CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
162
- UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
163
- } = {
164
- UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
165
- CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
166
- UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
167
- }> implements UserService {
168
- #private;
169
- em: EntityManager;
170
- protected passwordEncryptionPublicKeyPath: string;
171
- protected roleServiceFactory: () => RoleService;
172
- protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
173
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
174
- protected schemaValidator: SchemaValidator;
175
- protected mappers: {
176
- UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
177
- CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
178
- UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
179
- };
180
- readonly options?: {
181
- telemetry?: TelemetryOptions;
182
- } | undefined;
183
- private evaluatedTelemetryOptions;
184
- constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
185
- UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
186
- CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
187
- UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
188
- }, options?: {
392
+ declare class BaseUserService<
393
+ SchemaValidator extends AnySchemaValidator,
394
+ OrganizationStatus,
395
+ Entities extends UserEntities,
396
+ Dto extends UserDtos = UserDtos
397
+ > implements UserService
398
+ {
399
+ em: EntityManager;
400
+ protected passwordEncryptionPublicKeyPath: string;
401
+ protected roleServiceFactory: () => RoleService;
402
+ protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
403
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
404
+ protected schemaValidator: SchemaValidator;
405
+ protected mappers: {
406
+ UserMapper: ResponseMapperConstructor<
407
+ SchemaValidator,
408
+ Dto['UserMapper'],
409
+ Entities['UserMapper']
410
+ >;
411
+ CreateUserMapper: RequestMapperConstructor<
412
+ SchemaValidator,
413
+ Dto['CreateUserMapper'],
414
+ Entities['CreateUserMapper'],
415
+ (
416
+ dto: Dto['CreateUserMapper'],
417
+ em: EntityManager
418
+ ) => Promise<Entities['CreateUserMapper']>
419
+ >;
420
+ UpdateUserMapper: RequestMapperConstructor<
421
+ SchemaValidator,
422
+ Dto['UpdateUserMapper'],
423
+ Entities['UpdateUserMapper'],
424
+ (
425
+ dto: Dto['UpdateUserMapper'],
426
+ em: EntityManager
427
+ ) => Promise<Entities['UpdateUserMapper']>
428
+ >;
429
+ };
430
+ readonly options?:
431
+ | {
189
432
  telemetry?: TelemetryOptions;
190
- } | undefined);
191
- createUser(userDto: Dto['CreateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
192
- createBatchUsers(userDtos: Dto['CreateUserDtoMapper'][], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
193
- getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserDtoMapper']>;
194
- getBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
195
- updateUser(userDto: Dto['UpdateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
196
- updateBatchUsers(userDtos: UpdateUserDto[], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
197
- deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
198
- deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
199
- verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
200
- verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
433
+ }
434
+ | undefined;
435
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
436
+ private evaluatedTelemetryOptions;
437
+ constructor(
438
+ em: EntityManager,
439
+ passwordEncryptionPublicKeyPath: string,
440
+ roleServiceFactory: () => RoleService,
441
+ organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
442
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
443
+ schemaValidator: SchemaValidator,
444
+ mappers: {
445
+ UserMapper: ResponseMapperConstructor<
446
+ SchemaValidator,
447
+ Dto['UserMapper'],
448
+ Entities['UserMapper']
449
+ >;
450
+ CreateUserMapper: RequestMapperConstructor<
451
+ SchemaValidator,
452
+ Dto['CreateUserMapper'],
453
+ Entities['CreateUserMapper'],
454
+ (
455
+ dto: Dto['CreateUserMapper'],
456
+ em: EntityManager
457
+ ) => Promise<Entities['CreateUserMapper']>
458
+ >;
459
+ UpdateUserMapper: RequestMapperConstructor<
460
+ SchemaValidator,
461
+ Dto['UpdateUserMapper'],
462
+ Entities['UpdateUserMapper'],
463
+ (
464
+ dto: Dto['UpdateUserMapper'],
465
+ em: EntityManager
466
+ ) => Promise<Entities['UpdateUserMapper']>
467
+ >;
468
+ },
469
+ options?:
470
+ | {
471
+ telemetry?: TelemetryOptions;
472
+ }
473
+ | undefined
474
+ );
475
+ createUser(
476
+ userDto: Dto['CreateUserMapper'],
477
+ em?: EntityManager
478
+ ): Promise<Dto['UserMapper']>;
479
+ createBatchUsers(
480
+ userDtos: Dto['CreateUserMapper'][],
481
+ em?: EntityManager
482
+ ): Promise<Dto['UserMapper'][]>;
483
+ getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserMapper']>;
484
+ getBatchUsers(
485
+ idsDto: IdsDto,
486
+ em?: EntityManager
487
+ ): Promise<Dto['UserMapper'][]>;
488
+ updateUser(
489
+ userDto: Dto['UpdateUserMapper'],
490
+ em?: EntityManager
491
+ ): Promise<Dto['UserMapper']>;
492
+ updateBatchUsers(
493
+ userDtos: UpdateUserDto[],
494
+ em?: EntityManager
495
+ ): Promise<Dto['UserMapper'][]>;
496
+ deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
497
+ deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
498
+ verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
499
+ verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
201
500
  }
202
501
 
203
- export { BaseOrganizationService, BasePermissionService, BaseRoleService, BaseUserService };
502
+ export {
503
+ BaseOrganizationService,
504
+ BasePermissionService,
505
+ BaseRoleService,
506
+ BaseUserService
507
+ };