@forklaunch/implementation-iam-base 0.1.7 → 0.1.8
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 +10 -13
- package/lib/eject/services/permission.service.ts +14 -21
- package/lib/eject/services/role.service.ts +15 -18
- package/lib/eject/services/user.service.ts +15 -18
- package/lib/schemas/organization.schema.d.ts +1 -1
- package/lib/schemas/organization.schema.js +1 -1
- package/lib/schemas/permission.schema.d.ts +1 -1
- package/lib/schemas/permission.schema.js +1 -1
- package/lib/schemas/role.schema.d.ts +1 -1
- package/lib/schemas/role.schema.js +1 -1
- package/lib/schemas/user.schema.d.ts +1 -1
- package/lib/schemas/user.schema.js +1 -1
- package/lib/services/organization.service.d.ts +3 -3
- package/lib/services/organization.service.d.ts.map +1 -1
- package/lib/services/organization.service.js +11 -11
- package/lib/services/permission.service.d.ts +3 -3
- package/lib/services/permission.service.d.ts.map +1 -1
- package/lib/services/permission.service.js +15 -15
- package/lib/services/role.service.d.ts +3 -3
- package/lib/services/role.service.d.ts.map +1 -1
- package/lib/services/role.service.js +16 -16
- package/lib/services/user.service.d.ts +3 -3
- package/lib/services/user.service.d.ts.map +1 -1
- package/lib/services/user.service.js +16 -16
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- /package/lib/eject/{schemas → domain/schemas}/index.ts +0 -0
- /package/lib/eject/{schemas → domain/schemas}/organization.schema.ts +0 -0
- /package/lib/eject/{schemas → domain/schemas}/permission.schema.ts +0 -0
- /package/lib/eject/{schemas → domain/schemas}/role.schema.ts +0 -0
- /package/lib/eject/{schemas → domain/schemas}/user.schema.ts +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
RequestDtoMapperConstructor,
|
|
5
5
|
ResponseDtoMapperConstructor,
|
|
6
6
|
transformIntoInternalDtoMapper
|
|
7
|
-
} from '@forklaunch/core/
|
|
7
|
+
} from '@forklaunch/core/mappers';
|
|
8
8
|
import {
|
|
9
9
|
MetricsDefinition,
|
|
10
10
|
OpenTelemetryCollector
|
|
@@ -61,8 +61,8 @@ export class BaseOrganizationService<
|
|
|
61
61
|
}
|
|
62
62
|
> implements OrganizationService<OrganizationStatus>
|
|
63
63
|
{
|
|
64
|
-
#
|
|
65
|
-
InstanceTypeRecord<typeof this.
|
|
64
|
+
#mapperss: InternalDtoMapper<
|
|
65
|
+
InstanceTypeRecord<typeof this.mapperss>,
|
|
66
66
|
Entities,
|
|
67
67
|
Dto
|
|
68
68
|
>;
|
|
@@ -71,7 +71,7 @@ export class BaseOrganizationService<
|
|
|
71
71
|
public em: EntityManager,
|
|
72
72
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
73
73
|
protected schemaValidator: SchemaValidator,
|
|
74
|
-
protected
|
|
74
|
+
protected mapperss: {
|
|
75
75
|
OrganizationDtoMapper: ResponseDtoMapperConstructor<
|
|
76
76
|
SchemaValidator,
|
|
77
77
|
Dto['OrganizationDtoMapper'],
|
|
@@ -89,10 +89,7 @@ export class BaseOrganizationService<
|
|
|
89
89
|
>;
|
|
90
90
|
}
|
|
91
91
|
) {
|
|
92
|
-
this.#
|
|
93
|
-
dtoMappers,
|
|
94
|
-
schemaValidator
|
|
95
|
-
);
|
|
92
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
96
93
|
}
|
|
97
94
|
|
|
98
95
|
async createOrganization(
|
|
@@ -101,14 +98,14 @@ export class BaseOrganizationService<
|
|
|
101
98
|
): Promise<Dto['OrganizationDtoMapper']> {
|
|
102
99
|
this.openTelemetryCollector.log('info', 'Creating organization');
|
|
103
100
|
const organization =
|
|
104
|
-
this.#
|
|
101
|
+
this.#mapperss.CreateOrganizationDtoMapper.deserializeDtoToEntity(
|
|
105
102
|
organizationDto
|
|
106
103
|
);
|
|
107
104
|
await (em ?? this.em).transactional(async (innerEm) => {
|
|
108
105
|
await innerEm.persist(organization);
|
|
109
106
|
});
|
|
110
107
|
|
|
111
|
-
return this.#
|
|
108
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
|
|
112
109
|
organization
|
|
113
110
|
);
|
|
114
111
|
}
|
|
@@ -121,7 +118,7 @@ export class BaseOrganizationService<
|
|
|
121
118
|
'Organization',
|
|
122
119
|
idDto
|
|
123
120
|
);
|
|
124
|
-
return this.#
|
|
121
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
|
|
125
122
|
organization as Entities['OrganizationDtoMapper']
|
|
126
123
|
);
|
|
127
124
|
}
|
|
@@ -131,11 +128,11 @@ export class BaseOrganizationService<
|
|
|
131
128
|
em?: EntityManager
|
|
132
129
|
): Promise<Dto['OrganizationDtoMapper']> {
|
|
133
130
|
const updatedOrganization =
|
|
134
|
-
this.#
|
|
131
|
+
this.#mapperss.UpdateOrganizationDtoMapper.deserializeDtoToEntity(
|
|
135
132
|
organizationDto
|
|
136
133
|
);
|
|
137
134
|
await (em ?? this.em).upsert(updatedOrganization);
|
|
138
|
-
return this.#
|
|
135
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
|
|
139
136
|
updatedOrganization
|
|
140
137
|
);
|
|
141
138
|
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
RequestDtoMapperConstructor,
|
|
10
10
|
ResponseDtoMapperConstructor,
|
|
11
11
|
transformIntoInternalDtoMapper
|
|
12
|
-
} from '@forklaunch/core/
|
|
12
|
+
} from '@forklaunch/core/mappers';
|
|
13
13
|
import {
|
|
14
14
|
MetricsDefinition,
|
|
15
15
|
OpenTelemetryCollector
|
|
@@ -51,8 +51,8 @@ export class BasePermissionService<
|
|
|
51
51
|
}
|
|
52
52
|
> implements PermissionService
|
|
53
53
|
{
|
|
54
|
-
#
|
|
55
|
-
InstanceTypeRecord<typeof this.
|
|
54
|
+
#mapperss: InternalDtoMapper<
|
|
55
|
+
InstanceTypeRecord<typeof this.mapperss>,
|
|
56
56
|
Entities,
|
|
57
57
|
Dto
|
|
58
58
|
>;
|
|
@@ -62,7 +62,7 @@ export class BasePermissionService<
|
|
|
62
62
|
protected roleServiceFactory: () => RoleService,
|
|
63
63
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
64
64
|
protected schemaValidator: SchemaValidator,
|
|
65
|
-
protected
|
|
65
|
+
protected mapperss: {
|
|
66
66
|
PermissionDtoMapper: ResponseDtoMapperConstructor<
|
|
67
67
|
SchemaValidator,
|
|
68
68
|
Dto['PermissionDtoMapper'],
|
|
@@ -85,10 +85,7 @@ export class BasePermissionService<
|
|
|
85
85
|
>;
|
|
86
86
|
}
|
|
87
87
|
) {
|
|
88
|
-
this.#
|
|
89
|
-
dtoMappers,
|
|
90
|
-
schemaValidator
|
|
91
|
-
);
|
|
88
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
92
89
|
}
|
|
93
90
|
|
|
94
91
|
// start: global helper functions
|
|
@@ -126,7 +123,7 @@ export class BasePermissionService<
|
|
|
126
123
|
? (await this.roleServiceFactory().getBatchRoles(roleIds, em)).map(
|
|
127
124
|
(role) => {
|
|
128
125
|
return (em ?? this.em).merge(
|
|
129
|
-
this.#
|
|
126
|
+
this.#mapperss.RoleDtoMapper.deserializeDtoToEntity(role)
|
|
130
127
|
);
|
|
131
128
|
}
|
|
132
129
|
)
|
|
@@ -162,7 +159,7 @@ export class BasePermissionService<
|
|
|
162
159
|
}> {
|
|
163
160
|
return {
|
|
164
161
|
permission: (em ?? this.em).merge(
|
|
165
|
-
this.#
|
|
162
|
+
this.#mapperss.CreatePermissionDtoMapper.deserializeDtoToEntity(
|
|
166
163
|
permissionDto
|
|
167
164
|
)
|
|
168
165
|
),
|
|
@@ -183,9 +180,7 @@ export class BasePermissionService<
|
|
|
183
180
|
await (em ?? this.em).transactional(async (innerEm) => {
|
|
184
181
|
await innerEm.persist([permission, ...roles]);
|
|
185
182
|
});
|
|
186
|
-
return this.#
|
|
187
|
-
permission
|
|
188
|
-
);
|
|
183
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
189
184
|
}
|
|
190
185
|
|
|
191
186
|
async createBatchPermissions(
|
|
@@ -225,7 +220,7 @@ export class BasePermissionService<
|
|
|
225
220
|
});
|
|
226
221
|
|
|
227
222
|
return permissions.map((permission) =>
|
|
228
|
-
this.#
|
|
223
|
+
this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission)
|
|
229
224
|
);
|
|
230
225
|
}
|
|
231
226
|
|
|
@@ -234,7 +229,7 @@ export class BasePermissionService<
|
|
|
234
229
|
em?: EntityManager
|
|
235
230
|
): Promise<Dto['PermissionDtoMapper']> {
|
|
236
231
|
const permission = await (em ?? this.em).findOneOrFail('Permission', idDto);
|
|
237
|
-
return this.#
|
|
232
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(
|
|
238
233
|
permission as Entities['PermissionDtoMapper']
|
|
239
234
|
);
|
|
240
235
|
}
|
|
@@ -245,7 +240,7 @@ export class BasePermissionService<
|
|
|
245
240
|
): Promise<Dto['PermissionDtoMapper'][]> {
|
|
246
241
|
return (await (em ?? this.em).find('Permission', idsDto)).map(
|
|
247
242
|
(permission) =>
|
|
248
|
-
this.#
|
|
243
|
+
this.#mapperss.PermissionDtoMapper.serializeEntityToDto(
|
|
249
244
|
permission as Entities['PermissionDtoMapper']
|
|
250
245
|
)
|
|
251
246
|
);
|
|
@@ -260,7 +255,7 @@ export class BasePermissionService<
|
|
|
260
255
|
roles: Entities['RoleDtoMapper'][];
|
|
261
256
|
}> => {
|
|
262
257
|
const permission =
|
|
263
|
-
this.#
|
|
258
|
+
this.#mapperss.UpdatePermissionDtoMapper.deserializeDtoToEntity(
|
|
264
259
|
permissionDto
|
|
265
260
|
);
|
|
266
261
|
const addToRoles = permissionDto.addToRolesIds
|
|
@@ -295,9 +290,7 @@ export class BasePermissionService<
|
|
|
295
290
|
if (!em) {
|
|
296
291
|
this.em.flush();
|
|
297
292
|
}
|
|
298
|
-
return this.#
|
|
299
|
-
permission
|
|
300
|
-
);
|
|
293
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
301
294
|
}
|
|
302
295
|
|
|
303
296
|
async updateBatchPermissions(
|
|
@@ -333,7 +326,7 @@ export class BasePermissionService<
|
|
|
333
326
|
});
|
|
334
327
|
|
|
335
328
|
return permissions.map((permission) =>
|
|
336
|
-
this.#
|
|
329
|
+
this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission)
|
|
337
330
|
);
|
|
338
331
|
}
|
|
339
332
|
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
RequestDtoMapperConstructor,
|
|
12
12
|
ResponseDtoMapperConstructor,
|
|
13
13
|
transformIntoInternalDtoMapper
|
|
14
|
-
} from '@forklaunch/core/
|
|
14
|
+
} from '@forklaunch/core/mappers';
|
|
15
15
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
16
16
|
import {
|
|
17
17
|
CreateRoleDto,
|
|
@@ -55,8 +55,8 @@ export class BaseRoleService<
|
|
|
55
55
|
}
|
|
56
56
|
> implements RoleService
|
|
57
57
|
{
|
|
58
|
-
#
|
|
59
|
-
InstanceTypeRecord<typeof this.
|
|
58
|
+
#mapperss: InternalDtoMapper<
|
|
59
|
+
InstanceTypeRecord<typeof this.mapperss>,
|
|
60
60
|
Entities,
|
|
61
61
|
Dto
|
|
62
62
|
>;
|
|
@@ -65,7 +65,7 @@ export class BaseRoleService<
|
|
|
65
65
|
public em: EntityManager,
|
|
66
66
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
67
67
|
protected schemaValidator: SchemaValidator,
|
|
68
|
-
protected
|
|
68
|
+
protected mapperss: {
|
|
69
69
|
RoleDtoMapper: ResponseDtoMapperConstructor<
|
|
70
70
|
SchemaValidator,
|
|
71
71
|
Dto['RoleDtoMapper'],
|
|
@@ -83,10 +83,7 @@ export class BaseRoleService<
|
|
|
83
83
|
>;
|
|
84
84
|
}
|
|
85
85
|
) {
|
|
86
|
-
this.#
|
|
87
|
-
dtoMappers,
|
|
88
|
-
schemaValidator
|
|
89
|
-
);
|
|
86
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
90
87
|
}
|
|
91
88
|
|
|
92
89
|
async createRole(
|
|
@@ -95,9 +92,9 @@ export class BaseRoleService<
|
|
|
95
92
|
): Promise<Dto['RoleDtoMapper']> {
|
|
96
93
|
// TODO: Think about removing static method here, since we need specific args
|
|
97
94
|
const role =
|
|
98
|
-
this.#
|
|
95
|
+
this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
|
|
99
96
|
await (em ?? this.em).transactional((em) => em.persist(role));
|
|
100
|
-
return this.#
|
|
97
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(
|
|
101
98
|
role as Entities['RoleDtoMapper']
|
|
102
99
|
);
|
|
103
100
|
}
|
|
@@ -108,12 +105,12 @@ export class BaseRoleService<
|
|
|
108
105
|
): Promise<Dto['RoleDtoMapper'][]> {
|
|
109
106
|
const roles = await Promise.all(
|
|
110
107
|
roleDtos.map(async (roleDto) =>
|
|
111
|
-
this.#
|
|
108
|
+
this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)
|
|
112
109
|
)
|
|
113
110
|
);
|
|
114
111
|
await (em ?? this.em).transactional((em) => em.persist(roles));
|
|
115
112
|
return roles.map((role) =>
|
|
116
|
-
this.#
|
|
113
|
+
this.#mapperss.RoleDtoMapper.serializeEntityToDto(
|
|
117
114
|
role as Entities['RoleDtoMapper']
|
|
118
115
|
)
|
|
119
116
|
);
|
|
@@ -123,7 +120,7 @@ export class BaseRoleService<
|
|
|
123
120
|
const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
|
|
124
121
|
populate: ['id', '*']
|
|
125
122
|
});
|
|
126
|
-
return this.#
|
|
123
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(
|
|
127
124
|
role as Entities['RoleDtoMapper']
|
|
128
125
|
);
|
|
129
126
|
}
|
|
@@ -134,7 +131,7 @@ export class BaseRoleService<
|
|
|
134
131
|
populate: ['id', '*']
|
|
135
132
|
})
|
|
136
133
|
).map((role) =>
|
|
137
|
-
this.#
|
|
134
|
+
this.#mapperss.RoleDtoMapper.serializeEntityToDto(
|
|
138
135
|
role as Entities['RoleDtoMapper']
|
|
139
136
|
)
|
|
140
137
|
);
|
|
@@ -144,13 +141,13 @@ export class BaseRoleService<
|
|
|
144
141
|
roleDto: Dto['UpdateRoleDtoMapper'],
|
|
145
142
|
em?: EntityManager
|
|
146
143
|
): Promise<Dto['RoleDtoMapper']> {
|
|
147
|
-
let role = this.#
|
|
144
|
+
let role = this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(
|
|
148
145
|
roleDto
|
|
149
146
|
) as Entities['RoleDtoMapper'];
|
|
150
147
|
await (em ?? this.em).transactional(async (em) => {
|
|
151
148
|
role = (await em.upsert('Role', role)) as Entities['RoleDtoMapper'];
|
|
152
149
|
});
|
|
153
|
-
return this.#
|
|
150
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
|
|
154
151
|
}
|
|
155
152
|
|
|
156
153
|
async updateBatchRoles(
|
|
@@ -159,14 +156,14 @@ export class BaseRoleService<
|
|
|
159
156
|
): Promise<Dto['RoleDtoMapper'][]> {
|
|
160
157
|
let roles = await Promise.all(
|
|
161
158
|
roleDtos.map(async (roleDto) =>
|
|
162
|
-
this.#
|
|
159
|
+
this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)
|
|
163
160
|
)
|
|
164
161
|
);
|
|
165
162
|
await (em ?? this.em).transactional(async (em) => {
|
|
166
163
|
roles = await em.upsertMany('Role', roles);
|
|
167
164
|
});
|
|
168
165
|
return roles.map((role) =>
|
|
169
|
-
this.#
|
|
166
|
+
this.#mapperss.RoleDtoMapper.serializeEntityToDto(
|
|
170
167
|
role as Entities['RoleDtoMapper']
|
|
171
168
|
)
|
|
172
169
|
);
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
RequestDtoMapperConstructor,
|
|
11
11
|
ResponseDtoMapperConstructor,
|
|
12
12
|
transformIntoInternalDtoMapper
|
|
13
|
-
} from '@forklaunch/core/
|
|
13
|
+
} from '@forklaunch/core/mappers';
|
|
14
14
|
import {
|
|
15
15
|
MetricsDefinition,
|
|
16
16
|
OpenTelemetryCollector
|
|
@@ -48,8 +48,8 @@ export class BaseUserService<
|
|
|
48
48
|
}
|
|
49
49
|
> implements UserService
|
|
50
50
|
{
|
|
51
|
-
#
|
|
52
|
-
InstanceTypeRecord<typeof this.
|
|
51
|
+
#mapperss: InternalDtoMapper<
|
|
52
|
+
InstanceTypeRecord<typeof this.mapperss>,
|
|
53
53
|
Entities,
|
|
54
54
|
Dto
|
|
55
55
|
>;
|
|
@@ -61,7 +61,7 @@ export class BaseUserService<
|
|
|
61
61
|
protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
|
|
62
62
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
|
|
63
63
|
protected schemaValidator: SchemaValidator,
|
|
64
|
-
protected
|
|
64
|
+
protected mapperss: {
|
|
65
65
|
UserDtoMapper: ResponseDtoMapperConstructor<
|
|
66
66
|
SchemaValidator,
|
|
67
67
|
Dto['UserDtoMapper'],
|
|
@@ -87,10 +87,7 @@ export class BaseUserService<
|
|
|
87
87
|
>;
|
|
88
88
|
}
|
|
89
89
|
) {
|
|
90
|
-
this.#
|
|
91
|
-
dtoMappers,
|
|
92
|
-
schemaValidator
|
|
93
|
-
);
|
|
90
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
94
91
|
}
|
|
95
92
|
|
|
96
93
|
async createUser(
|
|
@@ -98,14 +95,14 @@ export class BaseUserService<
|
|
|
98
95
|
em?: EntityManager
|
|
99
96
|
): Promise<Dto['UserDtoMapper']> {
|
|
100
97
|
const user =
|
|
101
|
-
await this.#
|
|
98
|
+
await this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(
|
|
102
99
|
userDto,
|
|
103
100
|
this.passwordEncryptionPublicKeyPath
|
|
104
101
|
);
|
|
105
102
|
((await em) ?? this.em).transactional(async (em) => {
|
|
106
103
|
await em.persist(user);
|
|
107
104
|
});
|
|
108
|
-
return this.#
|
|
105
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
|
|
109
106
|
}
|
|
110
107
|
|
|
111
108
|
async createBatchUsers(
|
|
@@ -114,7 +111,7 @@ export class BaseUserService<
|
|
|
114
111
|
): Promise<Dto['UserDtoMapper'][]> {
|
|
115
112
|
const users = await Promise.all(
|
|
116
113
|
userDtos.map(async (createUserDto) =>
|
|
117
|
-
this.#
|
|
114
|
+
this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(
|
|
118
115
|
createUserDto,
|
|
119
116
|
this.passwordEncryptionPublicKeyPath
|
|
120
117
|
)
|
|
@@ -125,7 +122,7 @@ export class BaseUserService<
|
|
|
125
122
|
});
|
|
126
123
|
|
|
127
124
|
return users.map((user) =>
|
|
128
|
-
this.#
|
|
125
|
+
this.#mapperss.UserDtoMapper.serializeEntityToDto(user)
|
|
129
126
|
);
|
|
130
127
|
}
|
|
131
128
|
|
|
@@ -136,7 +133,7 @@ export class BaseUserService<
|
|
|
136
133
|
const user = await (em ?? this.em).findOneOrFail('User', idDto, {
|
|
137
134
|
populate: ['id', '*']
|
|
138
135
|
});
|
|
139
|
-
return this.#
|
|
136
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(
|
|
140
137
|
user as Entities['UserDtoMapper']
|
|
141
138
|
);
|
|
142
139
|
}
|
|
@@ -150,7 +147,7 @@ export class BaseUserService<
|
|
|
150
147
|
populate: ['id', '*']
|
|
151
148
|
})
|
|
152
149
|
).map((user) =>
|
|
153
|
-
this.#
|
|
150
|
+
this.#mapperss.UserDtoMapper.serializeEntityToDto(
|
|
154
151
|
user as Entities['UserDtoMapper']
|
|
155
152
|
)
|
|
156
153
|
);
|
|
@@ -160,14 +157,14 @@ export class BaseUserService<
|
|
|
160
157
|
userDto: Dto['UpdateUserDtoMapper'],
|
|
161
158
|
em?: EntityManager
|
|
162
159
|
): Promise<Dto['UserDtoMapper']> {
|
|
163
|
-
let user = this.#
|
|
160
|
+
let user = this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(
|
|
164
161
|
userDto,
|
|
165
162
|
this.passwordEncryptionPublicKeyPath
|
|
166
163
|
);
|
|
167
164
|
await (em ?? this.em).transactional(async (localEm) => {
|
|
168
165
|
user = await localEm.upsert(user);
|
|
169
166
|
});
|
|
170
|
-
return this.#
|
|
167
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
|
|
171
168
|
}
|
|
172
169
|
|
|
173
170
|
async updateBatchUsers(
|
|
@@ -176,7 +173,7 @@ export class BaseUserService<
|
|
|
176
173
|
): Promise<Dto['UserDtoMapper'][]> {
|
|
177
174
|
let users = await Promise.all(
|
|
178
175
|
userDtos.map(async (updateUserDto) =>
|
|
179
|
-
this.#
|
|
176
|
+
this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(
|
|
180
177
|
updateUserDto,
|
|
181
178
|
this.passwordEncryptionPublicKeyPath
|
|
182
179
|
)
|
|
@@ -186,7 +183,7 @@ export class BaseUserService<
|
|
|
186
183
|
users = await localEm.upsertMany(users);
|
|
187
184
|
});
|
|
188
185
|
return users.map((user) =>
|
|
189
|
-
this.#
|
|
186
|
+
this.#mapperss.UserDtoMapper.serializeEntityToDto(user)
|
|
190
187
|
);
|
|
191
188
|
}
|
|
192
189
|
|
|
@@ -2,7 +2,7 @@ export declare const BaseOrganizationServiceSchemas: <SchemaValidator extends im
|
|
|
2
2
|
uuidId: boolean;
|
|
3
3
|
} & {
|
|
4
4
|
validator: SchemaValidator;
|
|
5
|
-
}) => import("@forklaunch/core/
|
|
5
|
+
}) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: {
|
|
6
6
|
uuidId: boolean;
|
|
7
7
|
}) => {
|
|
8
8
|
CreateOrganizationSchema: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { serviceSchemaResolver } from '@forklaunch/core/
|
|
1
|
+
import { serviceSchemaResolver } from '@forklaunch/core/mappers';
|
|
2
2
|
import { BaseOrganizationServiceSchemas as TypeBoxSchemas } from './typebox/organization.schema';
|
|
3
3
|
import { BaseOrganizationServiceSchemas as ZodSchemas } from './zod/organization.schema';
|
|
4
4
|
export const BaseOrganizationServiceSchemas = serviceSchemaResolver(TypeBoxSchemas, ZodSchemas);
|
|
@@ -2,7 +2,7 @@ export declare const BasePermissionServiceSchemas: <SchemaValidator extends impo
|
|
|
2
2
|
uuidId: boolean;
|
|
3
3
|
} & {
|
|
4
4
|
validator: SchemaValidator;
|
|
5
|
-
}) => import("@forklaunch/core/
|
|
5
|
+
}) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: {
|
|
6
6
|
uuidId: boolean;
|
|
7
7
|
}) => {
|
|
8
8
|
CreatePermissionSchema: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { serviceSchemaResolver } from '@forklaunch/core/
|
|
1
|
+
import { serviceSchemaResolver } from '@forklaunch/core/mappers';
|
|
2
2
|
import { BasePermissionServiceSchemas as TypeBoxSchemas } from './typebox/permission.schema';
|
|
3
3
|
import { BasePermissionServiceSchemas as ZodSchemas } from './zod/permission.schema';
|
|
4
4
|
export const BasePermissionServiceSchemas = serviceSchemaResolver(TypeBoxSchemas, ZodSchemas);
|
|
@@ -2,7 +2,7 @@ export declare const BaseRoleServiceSchemas: <SchemaValidator extends import("@f
|
|
|
2
2
|
uuidId: boolean;
|
|
3
3
|
} & {
|
|
4
4
|
validator: SchemaValidator;
|
|
5
|
-
}) => import("@forklaunch/core/
|
|
5
|
+
}) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: {
|
|
6
6
|
uuidId: boolean;
|
|
7
7
|
}) => {
|
|
8
8
|
CreateRoleSchema: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { serviceSchemaResolver } from '@forklaunch/core/
|
|
1
|
+
import { serviceSchemaResolver } from '@forklaunch/core/mappers';
|
|
2
2
|
import { BaseRoleServiceSchemas as TypeBoxSchemas } from './typebox/role.schema';
|
|
3
3
|
import { BaseRoleServiceSchemas as ZodSchemas } from './zod/role.schema';
|
|
4
4
|
export const BaseRoleServiceSchemas = serviceSchemaResolver(TypeBoxSchemas, ZodSchemas);
|
|
@@ -2,7 +2,7 @@ export declare const BaseUserServiceSchemas: <SchemaValidator extends import("@f
|
|
|
2
2
|
uuidId: boolean;
|
|
3
3
|
} & {
|
|
4
4
|
validator: SchemaValidator;
|
|
5
|
-
}) => import("@forklaunch/core/
|
|
5
|
+
}) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: {
|
|
6
6
|
uuidId: boolean;
|
|
7
7
|
}) => {
|
|
8
8
|
CreateUserSchema: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { serviceSchemaResolver } from '@forklaunch/core/
|
|
1
|
+
import { serviceSchemaResolver } from '@forklaunch/core/mappers';
|
|
2
2
|
import { BaseUserServiceSchemas as TypeBoxSchemas } from './typebox/user.schema';
|
|
3
3
|
import { BaseUserServiceSchemas as ZodSchemas } from './zod/user.schema';
|
|
4
4
|
export const BaseUserServiceSchemas = serviceSchemaResolver(TypeBoxSchemas, ZodSchemas);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IdDto } from '@forklaunch/common';
|
|
2
|
-
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/
|
|
2
|
+
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
|
|
3
3
|
import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
|
|
4
4
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
5
5
|
import { OrganizationService } from '@forklaunch/interfaces-iam/interfaces';
|
|
@@ -27,12 +27,12 @@ export declare class BaseOrganizationService<SchemaValidator extends AnySchemaVa
|
|
|
27
27
|
em: EntityManager;
|
|
28
28
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
29
29
|
protected schemaValidator: SchemaValidator;
|
|
30
|
-
protected
|
|
30
|
+
protected mapperss: {
|
|
31
31
|
OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
|
|
32
32
|
CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
|
|
33
33
|
UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
|
|
34
34
|
};
|
|
35
|
-
constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator,
|
|
35
|
+
constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
|
|
36
36
|
OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
|
|
37
37
|
CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
|
|
38
38
|
UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.service.d.ts","sourceRoot":"","sources":["../../services/organization.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAsB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"organization.service.d.ts","sourceRoot":"","sources":["../../services/organization.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { transformIntoInternalDtoMapper } from '@forklaunch/core/
|
|
1
|
+
import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
|
|
2
2
|
export class BaseOrganizationService {
|
|
3
3
|
em;
|
|
4
4
|
openTelemetryCollector;
|
|
5
5
|
schemaValidator;
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
constructor(em, openTelemetryCollector, schemaValidator,
|
|
6
|
+
mapperss;
|
|
7
|
+
#mapperss;
|
|
8
|
+
constructor(em, openTelemetryCollector, schemaValidator, mapperss) {
|
|
9
9
|
this.em = em;
|
|
10
10
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
11
11
|
this.schemaValidator = schemaValidator;
|
|
12
|
-
this.
|
|
13
|
-
this.#
|
|
12
|
+
this.mapperss = mapperss;
|
|
13
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
14
14
|
}
|
|
15
15
|
async createOrganization(organizationDto, em) {
|
|
16
16
|
this.openTelemetryCollector.log('info', 'Creating organization');
|
|
17
|
-
const organization = this.#
|
|
17
|
+
const organization = this.#mapperss.CreateOrganizationDtoMapper.deserializeDtoToEntity(organizationDto);
|
|
18
18
|
await (em ?? this.em).transactional(async (innerEm) => {
|
|
19
19
|
await innerEm.persist(organization);
|
|
20
20
|
});
|
|
21
|
-
return this.#
|
|
21
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(organization);
|
|
22
22
|
}
|
|
23
23
|
async getOrganization(idDto, em) {
|
|
24
24
|
const organization = await (em ?? this.em).findOneOrFail('Organization', idDto);
|
|
25
|
-
return this.#
|
|
25
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(organization);
|
|
26
26
|
}
|
|
27
27
|
async updateOrganization(organizationDto, em) {
|
|
28
|
-
const updatedOrganization = this.#
|
|
28
|
+
const updatedOrganization = this.#mapperss.UpdateOrganizationDtoMapper.deserializeDtoToEntity(organizationDto);
|
|
29
29
|
await (em ?? this.em).upsert(updatedOrganization);
|
|
30
|
-
return this.#
|
|
30
|
+
return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(updatedOrganization);
|
|
31
31
|
}
|
|
32
32
|
async deleteOrganization(idDto, em) {
|
|
33
33
|
await (em ?? this.em).nativeDelete('Organization', idDto);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PermissionService, RoleService } from '@forklaunch/interfaces-iam/interfaces';
|
|
2
2
|
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
3
|
-
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/
|
|
3
|
+
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
|
|
4
4
|
import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
|
|
5
5
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
6
6
|
import { CreatePermissionDto, PermissionDto, RoleDto, UpdatePermissionDto } from '@forklaunch/interfaces-iam/types';
|
|
@@ -32,13 +32,13 @@ export declare class BasePermissionService<SchemaValidator extends AnySchemaVali
|
|
|
32
32
|
protected roleServiceFactory: () => RoleService;
|
|
33
33
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
34
34
|
protected schemaValidator: SchemaValidator;
|
|
35
|
-
protected
|
|
35
|
+
protected mapperss: {
|
|
36
36
|
PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
|
|
37
37
|
CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
|
|
38
38
|
UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
|
|
39
39
|
RoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
|
|
40
40
|
};
|
|
41
|
-
constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator,
|
|
41
|
+
constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
|
|
42
42
|
PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
|
|
43
43
|
CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
|
|
44
44
|
UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
|
|
@@ -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,EAEL,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../services/permission.service.ts"],"names":[],"mappings":"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"}
|