@forklaunch/implementation-iam-base 0.5.8 → 0.6.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/domain/types/index.d.mts +195 -0
- package/lib/domain/types/index.d.ts +195 -0
- package/lib/domain/types/index.js +22 -0
- package/lib/domain/types/index.mjs +0 -0
- package/lib/eject/domain/types/index.ts +6 -0
- package/lib/eject/domain/types/organization.mapper.types.ts +29 -0
- package/lib/eject/domain/types/permission.mapper.types.ts +35 -0
- package/lib/eject/domain/types/role.mapper.types.ts +28 -0
- package/lib/eject/domain/types/user.mapper.types.ts +28 -0
- package/lib/eject/services/organization.service.ts +40 -80
- package/lib/eject/services/permission.service.ts +69 -116
- package/lib/eject/services/role.service.ts +40 -97
- package/lib/eject/services/user.service.ts +47 -95
- package/lib/services/index.d.mts +108 -356
- package/lib/services/index.d.ts +108 -356
- package/lib/services/index.js +106 -112
- package/lib/services/index.mjs +106 -100
- package/package.json +9 -9
|
@@ -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
|
|
11
|
-
import { RoleDto } from '@forklaunch/interfaces-iam/types';
|
|
10
|
+
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
12
11
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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:
|
|
112
|
-
em?: EntityManager
|
|
113
|
-
|
|
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.
|
|
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.
|
|
79
|
+
return this.mappers.RoleMapper.toDto(role);
|
|
129
80
|
}
|
|
130
81
|
|
|
131
82
|
async createBatchRoles(
|
|
132
|
-
roleDtos:
|
|
133
|
-
em?: EntityManager
|
|
134
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
199
|
-
em?: EntityManager
|
|
200
|
-
|
|
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.
|
|
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.
|
|
163
|
+
return this.mappers.RoleMapper.toDto(role);
|
|
217
164
|
}
|
|
218
165
|
|
|
219
166
|
async updateBatchRoles(
|
|
220
|
-
roleDtos:
|
|
221
|
-
em?: EntityManager
|
|
222
|
-
|
|
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.
|
|
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.
|
|
244
|
-
role as MapperEntities['RoleMapper']
|
|
245
|
-
)
|
|
188
|
+
this.mappers.RoleMapper.toDto(role as MapperEntities['RoleMapper'])
|
|
246
189
|
)
|
|
247
190
|
);
|
|
248
191
|
}
|
|
@@ -4,33 +4,27 @@ import {
|
|
|
4
4
|
UserService
|
|
5
5
|
} from '@forklaunch/interfaces-iam/interfaces';
|
|
6
6
|
|
|
7
|
-
import { IdDto, IdsDto
|
|
7
|
+
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
8
8
|
import {
|
|
9
9
|
evaluateTelemetryOptions,
|
|
10
10
|
MetricsDefinition,
|
|
11
11
|
OpenTelemetryCollector,
|
|
12
12
|
TelemetryOptions
|
|
13
13
|
} from '@forklaunch/core/http';
|
|
14
|
-
import { UpdateUserDto } from '@forklaunch/interfaces-iam/types';
|
|
15
|
-
import {
|
|
16
|
-
InternalMapper,
|
|
17
|
-
RequestMapperConstructor,
|
|
18
|
-
ResponseMapperConstructor,
|
|
19
|
-
transformIntoInternalMapper
|
|
20
|
-
} from '@forklaunch/internal';
|
|
14
|
+
import { CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
|
|
21
15
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
22
16
|
import { EntityManager } from '@mikro-orm/core';
|
|
23
17
|
import { UserDtos } from '../domain/types/iamDto.types';
|
|
24
18
|
import { UserEntities } from '../domain/types/iamEntities.types';
|
|
19
|
+
import { UserMappers } from '../domain/types/user.mapper.types';
|
|
25
20
|
|
|
26
21
|
export class BaseUserService<
|
|
27
22
|
SchemaValidator extends AnySchemaValidator,
|
|
28
|
-
OrganizationStatus,
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
OrganizationStatus = unknown,
|
|
24
|
+
MapperEntities extends UserEntities = UserEntities,
|
|
25
|
+
MapperDomains extends UserDtos = UserDtos
|
|
31
26
|
> implements UserService
|
|
32
27
|
{
|
|
33
|
-
protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
|
|
34
28
|
private evaluatedTelemetryOptions: {
|
|
35
29
|
logging?: boolean;
|
|
36
30
|
metrics?: boolean;
|
|
@@ -42,31 +36,7 @@ export class BaseUserService<
|
|
|
42
36
|
protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
|
|
43
37
|
protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
|
|
44
38
|
protected schemaValidator: SchemaValidator;
|
|
45
|
-
protected mappers:
|
|
46
|
-
UserMapper: ResponseMapperConstructor<
|
|
47
|
-
SchemaValidator,
|
|
48
|
-
Dto['UserMapper'],
|
|
49
|
-
Entities['UserMapper']
|
|
50
|
-
>;
|
|
51
|
-
CreateUserMapper: RequestMapperConstructor<
|
|
52
|
-
SchemaValidator,
|
|
53
|
-
Dto['CreateUserMapper'],
|
|
54
|
-
Entities['CreateUserMapper'],
|
|
55
|
-
(
|
|
56
|
-
dto: Dto['CreateUserMapper'],
|
|
57
|
-
em: EntityManager
|
|
58
|
-
) => Promise<Entities['CreateUserMapper']>
|
|
59
|
-
>;
|
|
60
|
-
UpdateUserMapper: RequestMapperConstructor<
|
|
61
|
-
SchemaValidator,
|
|
62
|
-
Dto['UpdateUserMapper'],
|
|
63
|
-
Entities['UpdateUserMapper'],
|
|
64
|
-
(
|
|
65
|
-
dto: Dto['UpdateUserMapper'],
|
|
66
|
-
em: EntityManager
|
|
67
|
-
) => Promise<Entities['UpdateUserMapper']>
|
|
68
|
-
>;
|
|
69
|
-
};
|
|
39
|
+
protected mappers: UserMappers<MapperEntities, MapperDomains>;
|
|
70
40
|
|
|
71
41
|
constructor(
|
|
72
42
|
em: EntityManager,
|
|
@@ -75,32 +45,8 @@ export class BaseUserService<
|
|
|
75
45
|
organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
|
|
76
46
|
openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
|
|
77
47
|
schemaValidator: SchemaValidator,
|
|
78
|
-
mappers:
|
|
79
|
-
|
|
80
|
-
SchemaValidator,
|
|
81
|
-
Dto['UserMapper'],
|
|
82
|
-
Entities['UserMapper']
|
|
83
|
-
>;
|
|
84
|
-
CreateUserMapper: RequestMapperConstructor<
|
|
85
|
-
SchemaValidator,
|
|
86
|
-
Dto['CreateUserMapper'],
|
|
87
|
-
Entities['CreateUserMapper'],
|
|
88
|
-
(
|
|
89
|
-
dto: Dto['CreateUserMapper'],
|
|
90
|
-
em: EntityManager
|
|
91
|
-
) => Promise<Entities['CreateUserMapper']>
|
|
92
|
-
>;
|
|
93
|
-
UpdateUserMapper: RequestMapperConstructor<
|
|
94
|
-
SchemaValidator,
|
|
95
|
-
Dto['UpdateUserMapper'],
|
|
96
|
-
Entities['UpdateUserMapper'],
|
|
97
|
-
(
|
|
98
|
-
dto: Dto['UpdateUserMapper'],
|
|
99
|
-
em: EntityManager
|
|
100
|
-
) => Promise<Entities['UpdateUserMapper']>
|
|
101
|
-
>;
|
|
102
|
-
},
|
|
103
|
-
readonly options?: {
|
|
48
|
+
mappers: UserMappers<MapperEntities, MapperDomains>,
|
|
49
|
+
options?: {
|
|
104
50
|
telemetry?: TelemetryOptions;
|
|
105
51
|
}
|
|
106
52
|
) {
|
|
@@ -111,7 +57,6 @@ export class BaseUserService<
|
|
|
111
57
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
112
58
|
this.schemaValidator = schemaValidator;
|
|
113
59
|
this.mappers = mappers;
|
|
114
|
-
this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
|
|
115
60
|
this.evaluatedTelemetryOptions = options?.telemetry
|
|
116
61
|
? evaluateTelemetryOptions(options.telemetry).enabled
|
|
117
62
|
: {
|
|
@@ -122,16 +67,18 @@ export class BaseUserService<
|
|
|
122
67
|
}
|
|
123
68
|
|
|
124
69
|
async createUser(
|
|
125
|
-
userDto:
|
|
126
|
-
em?: EntityManager
|
|
127
|
-
|
|
70
|
+
userDto: CreateUserDto,
|
|
71
|
+
em?: EntityManager,
|
|
72
|
+
...args: unknown[]
|
|
73
|
+
): Promise<MapperDomains['UserMapper']> {
|
|
128
74
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
129
75
|
this.openTelemetryCollector.info('Creating user', userDto);
|
|
130
76
|
}
|
|
131
77
|
|
|
132
|
-
const user = await this.
|
|
78
|
+
const user = await this.mappers.CreateUserMapper.toEntity(
|
|
133
79
|
userDto,
|
|
134
|
-
em ?? this.em
|
|
80
|
+
em ?? this.em,
|
|
81
|
+
...args
|
|
135
82
|
);
|
|
136
83
|
|
|
137
84
|
if (em) {
|
|
@@ -140,22 +87,24 @@ export class BaseUserService<
|
|
|
140
87
|
await this.em.persistAndFlush(user);
|
|
141
88
|
}
|
|
142
89
|
|
|
143
|
-
return this.
|
|
90
|
+
return this.mappers.UserMapper.toDto(user);
|
|
144
91
|
}
|
|
145
92
|
|
|
146
93
|
async createBatchUsers(
|
|
147
|
-
userDtos:
|
|
148
|
-
em?: EntityManager
|
|
149
|
-
|
|
94
|
+
userDtos: CreateUserDto[],
|
|
95
|
+
em?: EntityManager,
|
|
96
|
+
...args: unknown[]
|
|
97
|
+
): Promise<MapperDomains['UserMapper'][]> {
|
|
150
98
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
151
99
|
this.openTelemetryCollector.info('Creating batch users', userDtos);
|
|
152
100
|
}
|
|
153
101
|
|
|
154
102
|
const users = await Promise.all(
|
|
155
103
|
userDtos.map(async (createUserDto) =>
|
|
156
|
-
this.
|
|
104
|
+
this.mappers.CreateUserMapper.toEntity(
|
|
157
105
|
createUserDto,
|
|
158
|
-
em ?? this.em
|
|
106
|
+
em ?? this.em,
|
|
107
|
+
...args
|
|
159
108
|
)
|
|
160
109
|
)
|
|
161
110
|
);
|
|
@@ -167,11 +116,14 @@ export class BaseUserService<
|
|
|
167
116
|
}
|
|
168
117
|
|
|
169
118
|
return Promise.all(
|
|
170
|
-
users.map((user) => this.
|
|
119
|
+
users.map((user) => this.mappers.UserMapper.toDto(user))
|
|
171
120
|
);
|
|
172
121
|
}
|
|
173
122
|
|
|
174
|
-
async getUser(
|
|
123
|
+
async getUser(
|
|
124
|
+
idDto: IdDto,
|
|
125
|
+
em?: EntityManager
|
|
126
|
+
): Promise<MapperDomains['UserMapper']> {
|
|
175
127
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
176
128
|
this.openTelemetryCollector.info('Getting user', idDto);
|
|
177
129
|
}
|
|
@@ -180,15 +132,13 @@ export class BaseUserService<
|
|
|
180
132
|
populate: ['id', '*']
|
|
181
133
|
});
|
|
182
134
|
|
|
183
|
-
return this.
|
|
184
|
-
user as Entities['UserMapper']
|
|
185
|
-
);
|
|
135
|
+
return this.mappers.UserMapper.toDto(user as MapperEntities['UserMapper']);
|
|
186
136
|
}
|
|
187
137
|
|
|
188
138
|
async getBatchUsers(
|
|
189
139
|
idsDto: IdsDto,
|
|
190
140
|
em?: EntityManager
|
|
191
|
-
): Promise<
|
|
141
|
+
): Promise<MapperDomains['UserMapper'][]> {
|
|
192
142
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
193
143
|
this.openTelemetryCollector.info('Getting batch users', idsDto);
|
|
194
144
|
}
|
|
@@ -199,24 +149,24 @@ export class BaseUserService<
|
|
|
199
149
|
populate: ['id', '*']
|
|
200
150
|
})
|
|
201
151
|
).map((user) =>
|
|
202
|
-
this.
|
|
203
|
-
user as Entities['UserMapper']
|
|
204
|
-
)
|
|
152
|
+
this.mappers.UserMapper.toDto(user as MapperEntities['UserMapper'])
|
|
205
153
|
)
|
|
206
154
|
);
|
|
207
155
|
}
|
|
208
156
|
|
|
209
157
|
async updateUser(
|
|
210
|
-
userDto:
|
|
211
|
-
em?: EntityManager
|
|
212
|
-
|
|
158
|
+
userDto: UpdateUserDto,
|
|
159
|
+
em?: EntityManager,
|
|
160
|
+
...args: unknown[]
|
|
161
|
+
): Promise<MapperDomains['UserMapper']> {
|
|
213
162
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
214
163
|
this.openTelemetryCollector.info('Updating user', userDto);
|
|
215
164
|
}
|
|
216
165
|
|
|
217
|
-
const user = await this.
|
|
166
|
+
const user = await this.mappers.UpdateUserMapper.toEntity(
|
|
218
167
|
userDto,
|
|
219
|
-
em ?? this.em
|
|
168
|
+
em ?? this.em,
|
|
169
|
+
...args
|
|
220
170
|
);
|
|
221
171
|
|
|
222
172
|
if (em) {
|
|
@@ -225,22 +175,24 @@ export class BaseUserService<
|
|
|
225
175
|
await this.em.persistAndFlush(user);
|
|
226
176
|
}
|
|
227
177
|
|
|
228
|
-
return this.
|
|
178
|
+
return this.mappers.UserMapper.toDto(user);
|
|
229
179
|
}
|
|
230
180
|
|
|
231
181
|
async updateBatchUsers(
|
|
232
182
|
userDtos: UpdateUserDto[],
|
|
233
|
-
em?: EntityManager
|
|
234
|
-
|
|
183
|
+
em?: EntityManager,
|
|
184
|
+
...args: unknown[]
|
|
185
|
+
): Promise<MapperDomains['UserMapper'][]> {
|
|
235
186
|
if (this.evaluatedTelemetryOptions.logging) {
|
|
236
187
|
this.openTelemetryCollector.info('Updating batch users', userDtos);
|
|
237
188
|
}
|
|
238
189
|
|
|
239
190
|
const users = await Promise.all(
|
|
240
191
|
userDtos.map(async (updateUserDto) =>
|
|
241
|
-
this.
|
|
192
|
+
this.mappers.UpdateUserMapper.toEntity(
|
|
242
193
|
updateUserDto,
|
|
243
|
-
em ?? this.em
|
|
194
|
+
em ?? this.em,
|
|
195
|
+
...args
|
|
244
196
|
)
|
|
245
197
|
)
|
|
246
198
|
);
|
|
@@ -252,7 +204,7 @@ export class BaseUserService<
|
|
|
252
204
|
}
|
|
253
205
|
|
|
254
206
|
return Promise.all(
|
|
255
|
-
users.map((user) => this.
|
|
207
|
+
users.map((user) => this.mappers.UserMapper.toDto(user))
|
|
256
208
|
);
|
|
257
209
|
}
|
|
258
210
|
|