@forklaunch/implementation-iam-base 0.5.8 → 0.6.1

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.
@@ -3,7 +3,7 @@ import {
3
3
  RoleService
4
4
  } from '@forklaunch/interfaces-iam/interfaces';
5
5
 
6
- import { IdDto, IdsDto, InstanceTypeRecord } from '@forklaunch/common';
6
+ import { IdDto, IdsDto } from '@forklaunch/common';
7
7
  import {
8
8
  evaluateTelemetryOptions,
9
9
  MetricsDefinition,
@@ -11,23 +11,21 @@ import {
11
11
  TelemetryOptions
12
12
  } from '@forklaunch/core/http';
13
13
  import {
14
- InternalMapper,
15
- RequestMapperConstructor,
16
- ResponseMapperConstructor,
17
- transformIntoInternalMapper
18
- } from '@forklaunch/internal';
14
+ CreatePermissionDto,
15
+ UpdatePermissionDto
16
+ } from '@forklaunch/interfaces-iam/types';
19
17
  import { AnySchemaValidator } from '@forklaunch/validator';
20
18
  import { EntityManager } from '@mikro-orm/core';
21
19
  import { PermissionDtos } from '../domain/types/iamDto.types';
22
20
  import { PermissionEntities } from '../domain/types/iamEntities.types';
21
+ import { PermissionMappers } from '../domain/types/permission.mapper.types';
23
22
 
24
23
  export class BasePermissionService<
25
24
  SchemaValidator extends AnySchemaValidator,
26
- MapperEntities extends PermissionEntities,
27
- MapperDto extends PermissionDtos = PermissionDtos
25
+ MapperEntities extends PermissionEntities = PermissionEntities,
26
+ MapperDomains extends PermissionDtos = PermissionDtos
28
27
  > implements PermissionService
29
28
  {
30
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
31
29
  private evaluatedTelemetryOptions: {
32
30
  logging?: boolean;
33
31
  metrics?: boolean;
@@ -37,80 +35,14 @@ export class BasePermissionService<
37
35
  protected roleServiceFactory: () => RoleService;
38
36
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
39
37
  protected schemaValidator: SchemaValidator;
40
- protected mappers: {
41
- PermissionMapper: ResponseMapperConstructor<
42
- SchemaValidator,
43
- MapperDto['PermissionMapper'],
44
- MapperEntities['PermissionMapper']
45
- >;
46
- CreatePermissionMapper: RequestMapperConstructor<
47
- SchemaValidator,
48
- MapperDto['CreatePermissionMapper'],
49
- MapperEntities['CreatePermissionMapper'],
50
- (
51
- dto: MapperDto['CreatePermissionMapper'],
52
- em: EntityManager
53
- ) => Promise<MapperEntities['CreatePermissionMapper']>
54
- >;
55
- UpdatePermissionMapper: RequestMapperConstructor<
56
- SchemaValidator,
57
- MapperDto['UpdatePermissionMapper'],
58
- MapperEntities['UpdatePermissionMapper'],
59
- (
60
- dto: MapperDto['UpdatePermissionMapper'],
61
- em: EntityManager
62
- ) => Promise<MapperEntities['UpdatePermissionMapper']>
63
- >;
64
- RoleEntityMapper: RequestMapperConstructor<
65
- SchemaValidator,
66
- MapperDto['RoleEntityMapper'],
67
- MapperEntities['RoleEntityMapper'],
68
- (
69
- dto: MapperDto['RoleEntityMapper'],
70
- em: EntityManager
71
- ) => Promise<MapperEntities['RoleEntityMapper']>
72
- >;
73
- };
38
+ protected mappers: PermissionMappers<MapperEntities, MapperDomains>;
74
39
 
75
40
  constructor(
76
41
  em: EntityManager,
77
42
  roleServiceFactory: () => RoleService,
78
43
  openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
79
44
  schemaValidator: SchemaValidator,
80
- mappers: {
81
- PermissionMapper: ResponseMapperConstructor<
82
- SchemaValidator,
83
- MapperDto['PermissionMapper'],
84
- MapperEntities['PermissionMapper']
85
- >;
86
- CreatePermissionMapper: RequestMapperConstructor<
87
- SchemaValidator,
88
- MapperDto['CreatePermissionMapper'],
89
- MapperEntities['CreatePermissionMapper'],
90
- (
91
- dto: MapperDto['CreatePermissionMapper'],
92
- em: EntityManager
93
- ) => Promise<MapperEntities['CreatePermissionMapper']>
94
- >;
95
- UpdatePermissionMapper: RequestMapperConstructor<
96
- SchemaValidator,
97
- MapperDto['UpdatePermissionMapper'],
98
- MapperEntities['UpdatePermissionMapper'],
99
- (
100
- dto: MapperDto['UpdatePermissionMapper'],
101
- em: EntityManager
102
- ) => Promise<MapperEntities['UpdatePermissionMapper']>
103
- >;
104
- RoleEntityMapper: RequestMapperConstructor<
105
- SchemaValidator,
106
- MapperDto['RoleEntityMapper'],
107
- MapperEntities['RoleEntityMapper'],
108
- (
109
- dto: MapperDto['RoleEntityMapper'],
110
- em: EntityManager
111
- ) => Promise<MapperEntities['RoleEntityMapper']>
112
- >;
113
- },
45
+ mappers: PermissionMappers<MapperEntities, MapperDomains>,
114
46
  options?: {
115
47
  telemetry?: TelemetryOptions;
116
48
  }
@@ -120,7 +52,6 @@ export class BasePermissionService<
120
52
  this.openTelemetryCollector = openTelemetryCollector;
121
53
  this.schemaValidator = schemaValidator;
122
54
  this.mappers = mappers;
123
- this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
124
55
  this.evaluatedTelemetryOptions = options?.telemetry
125
56
  ? evaluateTelemetryOptions(options.telemetry).enabled
126
57
  : {
@@ -166,7 +97,7 @@ export class BasePermissionService<
166
97
  (await this.roleServiceFactory().getBatchRoles(roles, em)).map(
167
98
  async (role) => {
168
99
  return (em ?? this.em).merge(
169
- await this._mappers.RoleEntityMapper.deserializeDtoToEntity(
100
+ await this.mappers.RoleEntityMapper.toEntity(
170
101
  role,
171
102
  em ?? this.em
172
103
  )
@@ -179,7 +110,7 @@ export class BasePermissionService<
179
110
  // end: global helper functions
180
111
 
181
112
  // start: createPermission helper functions
182
- private async createPermissionDto({
113
+ private async createPermissionEntity({
183
114
  permission,
184
115
  addToRoles
185
116
  }: {
@@ -197,18 +128,20 @@ export class BasePermissionService<
197
128
  return { permission, roles };
198
129
  }
199
130
 
200
- private async extractCreatePermissionDtoToEntityData(
201
- permissionDto: MapperDto['CreatePermissionMapper'],
202
- em?: EntityManager
131
+ private async extractCreatePermissionEntityToEntityData(
132
+ permissionDto: CreatePermissionDto,
133
+ em?: EntityManager,
134
+ ...args: unknown[]
203
135
  ): Promise<{
204
136
  permission: MapperEntities['PermissionMapper'];
205
137
  addToRoles: MapperEntities['RoleEntityMapper'][];
206
138
  }> {
207
139
  return {
208
140
  permission: (em ?? this.em).merge(
209
- await this._mappers.CreatePermissionMapper.deserializeDtoToEntity(
141
+ await this.mappers.CreatePermissionMapper.toEntity(
210
142
  permissionDto,
211
- em ?? this.em
143
+ em ?? this.em,
144
+ ...args
212
145
  )
213
146
  ),
214
147
  addToRoles: permissionDto.addToRolesIds
@@ -219,17 +152,22 @@ export class BasePermissionService<
219
152
  // end: createPermission helper functions
220
153
 
221
154
  async createPermission(
222
- createPermissionDto: MapperDto['CreatePermissionMapper'],
223
- em?: EntityManager
224
- ): Promise<MapperDto['PermissionMapper']> {
155
+ createPermissionEntity: CreatePermissionDto,
156
+ em?: EntityManager,
157
+ ...args: unknown[]
158
+ ): Promise<MapperDomains['PermissionMapper']> {
225
159
  if (this.evaluatedTelemetryOptions.logging) {
226
160
  this.openTelemetryCollector.info(
227
161
  'Creating permission',
228
- createPermissionDto
162
+ createPermissionEntity
229
163
  );
230
164
  }
231
- const { permission, roles } = await this.createPermissionDto(
232
- await this.extractCreatePermissionDtoToEntityData(createPermissionDto, em)
165
+ const { permission, roles } = await this.createPermissionEntity(
166
+ await this.extractCreatePermissionEntityToEntityData(
167
+ createPermissionEntity,
168
+ em,
169
+ ...args
170
+ )
233
171
  );
234
172
 
235
173
  if (em) {
@@ -238,13 +176,13 @@ export class BasePermissionService<
238
176
  await this.em.persistAndFlush([permission, ...roles]);
239
177
  }
240
178
 
241
- return this._mappers.PermissionMapper.serializeEntityToDto(permission);
179
+ return this.mappers.PermissionMapper.toDto(permission);
242
180
  }
243
181
 
244
182
  async createBatchPermissions(
245
- permissionDtos: MapperDto['CreatePermissionMapper'][],
183
+ permissionDtos: CreatePermissionDto[],
246
184
  em?: EntityManager
247
- ): Promise<MapperDto['PermissionMapper'][]> {
185
+ ): Promise<MapperDomains['PermissionMapper'][]> {
248
186
  if (this.evaluatedTelemetryOptions.logging) {
249
187
  this.openTelemetryCollector.info(
250
188
  'Creating batch permissions',
@@ -253,13 +191,27 @@ export class BasePermissionService<
253
191
  }
254
192
  const rolesCache: Record<string, MapperEntities['RoleEntityMapper']> = {};
255
193
  const permissions: MapperEntities['PermissionMapper'][] = [];
256
- permissionDtos.map(async (createPermissionDto) => {
257
- const { permission, roles } = await this.createPermissionDto(
258
- await this.extractCreatePermissionDtoToEntityData(
259
- createPermissionDto,
194
+ permissionDtos.map(async (createPermissionEntity) => {
195
+ const { permission, roles } = await this.createPermissionEntity(
196
+ await this.extractCreatePermissionEntityToEntityData(
197
+ createPermissionEntity,
260
198
  em
261
199
  )
262
200
  );
201
+ await Promise.all(
202
+ roles.map(async (role) => {
203
+ if (role.permissions.isInitialized()) {
204
+ return role.permissions.init();
205
+ }
206
+ })
207
+ );
208
+ await Promise.all(
209
+ roles.map(async (role) => {
210
+ if (role.permissions.isInitialized()) {
211
+ return role.permissions.init();
212
+ }
213
+ })
214
+ );
263
215
  roles.forEach((role) => {
264
216
  if (
265
217
  rolesCache[role.id] &&
@@ -286,7 +238,7 @@ export class BasePermissionService<
286
238
 
287
239
  return Promise.all(
288
240
  permissions.map(async (permission) =>
289
- this._mappers.PermissionMapper.serializeEntityToDto(permission)
241
+ this.mappers.PermissionMapper.toDto(permission)
290
242
  )
291
243
  );
292
244
  }
@@ -294,12 +246,12 @@ export class BasePermissionService<
294
246
  async getPermission(
295
247
  idDto: IdDto,
296
248
  em?: EntityManager
297
- ): Promise<MapperDto['PermissionMapper']> {
249
+ ): Promise<MapperDomains['PermissionMapper']> {
298
250
  if (this.evaluatedTelemetryOptions.logging) {
299
251
  this.openTelemetryCollector.info('Getting permission', idDto);
300
252
  }
301
253
  const permission = await (em ?? this.em).findOneOrFail('Permission', idDto);
302
- return this._mappers.PermissionMapper.serializeEntityToDto(
254
+ return this.mappers.PermissionMapper.toDto(
303
255
  permission as MapperEntities['PermissionMapper']
304
256
  );
305
257
  }
@@ -307,13 +259,13 @@ export class BasePermissionService<
307
259
  async getBatchPermissions(
308
260
  idsDto: IdsDto,
309
261
  em?: EntityManager
310
- ): Promise<MapperDto['PermissionMapper'][]> {
262
+ ): Promise<MapperDomains['PermissionMapper'][]> {
311
263
  if (this.evaluatedTelemetryOptions.logging) {
312
264
  this.openTelemetryCollector.info('Getting batch permissions', idsDto);
313
265
  }
314
266
  return Promise.all(
315
267
  (await (em ?? this.em).find('Permission', idsDto)).map((permission) =>
316
- this._mappers.PermissionMapper.serializeEntityToDto(
268
+ this.mappers.PermissionMapper.toDto(
317
269
  permission as MapperEntities['PermissionMapper']
318
270
  )
319
271
  )
@@ -322,17 +274,18 @@ export class BasePermissionService<
322
274
 
323
275
  // start: updatePermission helper functions
324
276
  private updatePermissionDto = async (
325
- permissionDto: MapperDto['UpdatePermissionMapper'],
326
- em?: EntityManager
277
+ permissionDto: UpdatePermissionDto,
278
+ em?: EntityManager,
279
+ ...args: unknown[]
327
280
  ): Promise<{
328
281
  permission: MapperEntities['PermissionMapper'];
329
282
  roles: MapperEntities['RoleEntityMapper'][];
330
283
  }> => {
331
- const permission =
332
- await this._mappers.UpdatePermissionMapper.deserializeDtoToEntity(
333
- permissionDto,
334
- em ?? this.em
335
- );
284
+ const permission = await this.mappers.UpdatePermissionMapper.toEntity(
285
+ permissionDto,
286
+ em ?? this.em,
287
+ ...args
288
+ );
336
289
  const addToRoles = permissionDto.addToRolesIds
337
290
  ? await this.getBatchRoles({ ids: permissionDto.addToRolesIds }, em)
338
291
  : [];
@@ -357,9 +310,9 @@ export class BasePermissionService<
357
310
  // end: updatePermission helper functions
358
311
 
359
312
  async updatePermission(
360
- permissionDto: MapperDto['UpdatePermissionMapper'],
313
+ permissionDto: UpdatePermissionDto,
361
314
  em?: EntityManager
362
- ): Promise<MapperDto['PermissionMapper']> {
315
+ ): Promise<MapperDomains['PermissionMapper']> {
363
316
  if (this.evaluatedTelemetryOptions.logging) {
364
317
  this.openTelemetryCollector.info('Updating permission', permissionDto);
365
318
  }
@@ -372,13 +325,13 @@ export class BasePermissionService<
372
325
  await this.em.persistAndFlush(entities);
373
326
  }
374
327
 
375
- return this._mappers.PermissionMapper.serializeEntityToDto(permission);
328
+ return this.mappers.PermissionMapper.toDto(permission);
376
329
  }
377
330
 
378
331
  async updateBatchPermissions(
379
- permissionDtos: MapperDto['UpdatePermissionMapper'][],
332
+ permissionDtos: UpdatePermissionDto[],
380
333
  em?: EntityManager
381
- ): Promise<MapperDto['PermissionMapper'][]> {
334
+ ): Promise<MapperDomains['PermissionMapper'][]> {
382
335
  if (this.evaluatedTelemetryOptions.logging) {
383
336
  this.openTelemetryCollector.info(
384
337
  'Updating batch permissions',
@@ -418,7 +371,7 @@ export class BasePermissionService<
418
371
 
419
372
  return Promise.all(
420
373
  permissions.map((permission) =>
421
- this._mappers.PermissionMapper.serializeEntityToDto(permission)
374
+ this.mappers.PermissionMapper.toDto(permission)
422
375
  )
423
376
  );
424
377
  }
@@ -7,25 +7,23 @@ import {
7
7
  import { RoleService } from '@forklaunch/interfaces-iam/interfaces';
8
8
  import { EntityManager } from '@mikro-orm/core';
9
9
 
10
- import { IdDto, IdsDto, InstanceTypeRecord } from '@forklaunch/common';
11
- import { RoleDto } from '@forklaunch/interfaces-iam/types';
10
+ import { IdDto, IdsDto } from '@forklaunch/common';
12
11
  import {
13
- InternalMapper,
14
- RequestMapperConstructor,
15
- ResponseMapperConstructor,
16
- transformIntoInternalMapper
17
- } from '@forklaunch/internal';
12
+ CreateRoleDto,
13
+ RoleDto,
14
+ UpdateRoleDto
15
+ } from '@forklaunch/interfaces-iam/types';
18
16
  import { AnySchemaValidator } from '@forklaunch/validator';
19
17
  import { RoleDtos } from '../domain/types/iamDto.types';
20
18
  import { RoleEntities } from '../domain/types/iamEntities.types';
19
+ import { RoleMappers } from '../domain/types/role.mapper.types';
21
20
 
22
21
  export class BaseRoleService<
23
22
  SchemaValidator extends AnySchemaValidator,
24
- MapperEntities extends RoleEntities,
25
- MapperDto extends RoleDtos = RoleDtos
23
+ MapperEntities extends RoleEntities = RoleEntities,
24
+ MapperDomains extends RoleDtos = RoleDtos
26
25
  > implements RoleService
27
26
  {
28
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
29
27
  private evaluatedTelemetryOptions: {
30
28
  logging?: boolean;
31
29
  metrics?: boolean;
@@ -34,61 +32,13 @@ export class BaseRoleService<
34
32
  public em: EntityManager;
35
33
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
36
34
  protected schemaValidator: SchemaValidator;
37
- protected mappers: {
38
- RoleMapper: ResponseMapperConstructor<
39
- SchemaValidator,
40
- MapperDto['RoleMapper'],
41
- MapperEntities['RoleMapper']
42
- >;
43
- CreateRoleMapper: RequestMapperConstructor<
44
- SchemaValidator,
45
- MapperDto['CreateRoleMapper'],
46
- MapperEntities['CreateRoleMapper'],
47
- (
48
- dto: MapperDto['CreateRoleMapper'],
49
- em: EntityManager
50
- ) => Promise<MapperEntities['CreateRoleMapper']>
51
- >;
52
- UpdateRoleMapper: RequestMapperConstructor<
53
- SchemaValidator,
54
- MapperDto['UpdateRoleMapper'],
55
- MapperEntities['UpdateRoleMapper'],
56
- (
57
- dto: MapperDto['UpdateRoleMapper'],
58
- em: EntityManager
59
- ) => Promise<MapperEntities['UpdateRoleMapper']>
60
- >;
61
- };
35
+ protected mappers: RoleMappers<MapperEntities, MapperDomains>;
62
36
 
63
37
  constructor(
64
38
  em: EntityManager,
65
39
  openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
66
40
  schemaValidator: SchemaValidator,
67
- mappers: {
68
- RoleMapper: ResponseMapperConstructor<
69
- SchemaValidator,
70
- MapperDto['RoleMapper'],
71
- MapperEntities['RoleMapper']
72
- >;
73
- CreateRoleMapper: RequestMapperConstructor<
74
- SchemaValidator,
75
- MapperDto['CreateRoleMapper'],
76
- MapperEntities['CreateRoleMapper'],
77
- (
78
- dto: MapperDto['CreateRoleMapper'],
79
- em: EntityManager
80
- ) => Promise<MapperEntities['CreateRoleMapper']>
81
- >;
82
- UpdateRoleMapper: RequestMapperConstructor<
83
- SchemaValidator,
84
- MapperDto['UpdateRoleMapper'],
85
- MapperEntities['UpdateRoleMapper'],
86
- (
87
- dto: MapperDto['UpdateRoleMapper'],
88
- em: EntityManager
89
- ) => Promise<MapperEntities['UpdateRoleMapper']>
90
- >;
91
- },
41
+ mappers: RoleMappers<MapperEntities, MapperDomains>,
92
42
  options?: {
93
43
  telemetry?: TelemetryOptions;
94
44
  }
@@ -97,7 +47,6 @@ export class BaseRoleService<
97
47
  this.openTelemetryCollector = openTelemetryCollector;
98
48
  this.schemaValidator = schemaValidator;
99
49
  this.mappers = mappers;
100
- this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
101
50
  this.evaluatedTelemetryOptions = options?.telemetry
102
51
  ? evaluateTelemetryOptions(options.telemetry).enabled
103
52
  : {
@@ -108,15 +57,17 @@ export class BaseRoleService<
108
57
  }
109
58
 
110
59
  async createRole(
111
- roleDto: MapperDto['CreateRoleMapper'],
112
- em?: EntityManager
113
- ): Promise<MapperDto['RoleMapper']> {
60
+ roleDto: CreateRoleDto,
61
+ em?: EntityManager,
62
+ ...args: unknown[]
63
+ ): Promise<RoleDto> {
114
64
  if (this.evaluatedTelemetryOptions.logging) {
115
65
  this.openTelemetryCollector.info('Creating role', roleDto);
116
66
  }
117
- const role = await this._mappers.CreateRoleMapper.deserializeDtoToEntity(
67
+ const role = await this.mappers.CreateRoleMapper.toEntity(
118
68
  roleDto,
119
- em ?? this.em
69
+ em ?? this.em,
70
+ ...args
120
71
  );
121
72
 
122
73
  if (em) {
@@ -125,23 +76,21 @@ export class BaseRoleService<
125
76
  await this.em.persistAndFlush(role);
126
77
  }
127
78
 
128
- return this._mappers.RoleMapper.serializeEntityToDto(role);
79
+ return this.mappers.RoleMapper.toDto(role);
129
80
  }
130
81
 
131
82
  async createBatchRoles(
132
- roleDtos: MapperDto['CreateRoleMapper'][],
133
- em?: EntityManager
134
- ): Promise<MapperDto['RoleMapper'][]> {
83
+ roleDtos: CreateRoleDto[],
84
+ em?: EntityManager,
85
+ ...args: unknown[]
86
+ ): Promise<RoleDto[]> {
135
87
  if (this.evaluatedTelemetryOptions.logging) {
136
88
  this.openTelemetryCollector.info('Creating batch roles', roleDtos);
137
89
  }
138
90
 
139
91
  const roles = await Promise.all(
140
92
  roleDtos.map(async (roleDto) =>
141
- this._mappers.CreateRoleMapper.deserializeDtoToEntity(
142
- roleDto,
143
- em ?? this.em
144
- )
93
+ this.mappers.CreateRoleMapper.toEntity(roleDto, em ?? this.em, ...args)
145
94
  )
146
95
  );
147
96
 
@@ -152,7 +101,7 @@ export class BaseRoleService<
152
101
  }
153
102
 
154
103
  return Promise.all(
155
- roles.map((role) => this._mappers.RoleMapper.serializeEntityToDto(role))
104
+ roles.map((role) => this.mappers.RoleMapper.toDto(role))
156
105
  );
157
106
  }
158
107
 
@@ -165,9 +114,7 @@ export class BaseRoleService<
165
114
  populate: ['id', '*']
166
115
  });
167
116
 
168
- return this._mappers.RoleMapper.serializeEntityToDto(
169
- role as MapperEntities['RoleMapper']
170
- );
117
+ return this.mappers.RoleMapper.toDto(role as MapperEntities['RoleMapper']);
171
118
  }
172
119
 
173
120
  async getBatchRoles({ ids }: IdsDto, em?: EntityManager): Promise<RoleDto[]> {
@@ -187,24 +134,24 @@ export class BaseRoleService<
187
134
  }
188
135
  )
189
136
  ).map((role) =>
190
- this._mappers.RoleMapper.serializeEntityToDto(
191
- role as MapperEntities['RoleMapper']
192
- )
137
+ this.mappers.RoleMapper.toDto(role as MapperEntities['RoleMapper'])
193
138
  )
194
139
  );
195
140
  }
196
141
 
197
142
  async updateRole(
198
- roleDto: MapperDto['UpdateRoleMapper'],
199
- em?: EntityManager
200
- ): Promise<MapperDto['RoleMapper']> {
143
+ roleDto: UpdateRoleDto,
144
+ em?: EntityManager,
145
+ ...args: unknown[]
146
+ ): Promise<RoleDto> {
201
147
  if (this.evaluatedTelemetryOptions.logging) {
202
148
  this.openTelemetryCollector.info('Updating role', roleDto);
203
149
  }
204
150
 
205
- const role = await this._mappers.UpdateRoleMapper.deserializeDtoToEntity(
151
+ const role = await this.mappers.UpdateRoleMapper.toEntity(
206
152
  roleDto,
207
- em ?? this.em
153
+ em ?? this.em,
154
+ ...args
208
155
  );
209
156
 
210
157
  if (em) {
@@ -213,23 +160,21 @@ export class BaseRoleService<
213
160
  await this.em.persistAndFlush(role);
214
161
  }
215
162
 
216
- return this._mappers.RoleMapper.serializeEntityToDto(role);
163
+ return this.mappers.RoleMapper.toDto(role);
217
164
  }
218
165
 
219
166
  async updateBatchRoles(
220
- roleDtos: MapperDto['UpdateRoleMapper'][],
221
- em?: EntityManager
222
- ): Promise<MapperDto['RoleMapper'][]> {
167
+ roleDtos: UpdateRoleDto[],
168
+ em?: EntityManager,
169
+ ...args: unknown[]
170
+ ): Promise<RoleDto[]> {
223
171
  if (this.evaluatedTelemetryOptions.logging) {
224
172
  this.openTelemetryCollector.info('Updating batch roles', roleDtos);
225
173
  }
226
174
 
227
175
  const roles = await Promise.all(
228
176
  roleDtos.map(async (roleDto) =>
229
- this._mappers.UpdateRoleMapper.deserializeDtoToEntity(
230
- roleDto,
231
- em ?? this.em
232
- )
177
+ this.mappers.UpdateRoleMapper.toEntity(roleDto, em ?? this.em, ...args)
233
178
  )
234
179
  );
235
180
 
@@ -240,9 +185,7 @@ export class BaseRoleService<
240
185
  }
241
186
  return Promise.all(
242
187
  roles.map((role) =>
243
- this._mappers.RoleMapper.serializeEntityToDto(
244
- role as MapperEntities['RoleMapper']
245
- )
188
+ this.mappers.RoleMapper.toDto(role as MapperEntities['RoleMapper'])
246
189
  )
247
190
  );
248
191
  }