@forklaunch/implementation-iam-base 0.1.7 → 0.1.9
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
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { transformIntoInternalDtoMapper } from '@forklaunch/core/
|
|
1
|
+
import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
|
|
2
2
|
export class BasePermissionService {
|
|
3
3
|
em;
|
|
4
4
|
roleServiceFactory;
|
|
5
5
|
openTelemetryCollector;
|
|
6
6
|
schemaValidator;
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
constructor(em, roleServiceFactory, openTelemetryCollector, schemaValidator,
|
|
7
|
+
mapperss;
|
|
8
|
+
#mapperss;
|
|
9
|
+
constructor(em, roleServiceFactory, openTelemetryCollector, schemaValidator, mapperss) {
|
|
10
10
|
this.em = em;
|
|
11
11
|
this.roleServiceFactory = roleServiceFactory;
|
|
12
12
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
13
13
|
this.schemaValidator = schemaValidator;
|
|
14
|
-
this.
|
|
15
|
-
this.#
|
|
14
|
+
this.mapperss = mapperss;
|
|
15
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
16
16
|
}
|
|
17
17
|
// start: global helper functions
|
|
18
18
|
async updateRolesWithPermissions(roles, permissions) {
|
|
@@ -30,7 +30,7 @@ export class BasePermissionService {
|
|
|
30
30
|
async getBatchRoles(roleIds, em) {
|
|
31
31
|
return roleIds
|
|
32
32
|
? (await this.roleServiceFactory().getBatchRoles(roleIds, em)).map((role) => {
|
|
33
|
-
return (em ?? this.em).merge(this.#
|
|
33
|
+
return (em ?? this.em).merge(this.#mapperss.RoleDtoMapper.deserializeDtoToEntity(role));
|
|
34
34
|
})
|
|
35
35
|
: [];
|
|
36
36
|
}
|
|
@@ -45,7 +45,7 @@ export class BasePermissionService {
|
|
|
45
45
|
}
|
|
46
46
|
async extractCreatePermissionDtoToEntityData(permissionDto, em) {
|
|
47
47
|
return {
|
|
48
|
-
permission: (em ?? this.em).merge(this.#
|
|
48
|
+
permission: (em ?? this.em).merge(this.#mapperss.CreatePermissionDtoMapper.deserializeDtoToEntity(permissionDto)),
|
|
49
49
|
addToRoles: permissionDto.addToRolesIds
|
|
50
50
|
? await this.getBatchRoles({ ids: permissionDto.addToRolesIds }, em)
|
|
51
51
|
: []
|
|
@@ -57,7 +57,7 @@ export class BasePermissionService {
|
|
|
57
57
|
await (em ?? this.em).transactional(async (innerEm) => {
|
|
58
58
|
await innerEm.persist([permission, ...roles]);
|
|
59
59
|
});
|
|
60
|
-
return this.#
|
|
60
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
61
61
|
}
|
|
62
62
|
async createBatchPermissions(permissionDtos, em) {
|
|
63
63
|
const rolesCache = {};
|
|
@@ -85,18 +85,18 @@ export class BasePermissionService {
|
|
|
85
85
|
...Object.values(rolesCache)
|
|
86
86
|
]);
|
|
87
87
|
});
|
|
88
|
-
return permissions.map((permission) => this.#
|
|
88
|
+
return permissions.map((permission) => this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission));
|
|
89
89
|
}
|
|
90
90
|
async getPermission(idDto, em) {
|
|
91
91
|
const permission = await (em ?? this.em).findOneOrFail('Permission', idDto);
|
|
92
|
-
return this.#
|
|
92
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
93
93
|
}
|
|
94
94
|
async getBatchPermissions(idsDto, em) {
|
|
95
|
-
return (await (em ?? this.em).find('Permission', idsDto)).map((permission) => this.#
|
|
95
|
+
return (await (em ?? this.em).find('Permission', idsDto)).map((permission) => this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission));
|
|
96
96
|
}
|
|
97
97
|
// start: updatePermission helper functions
|
|
98
98
|
updatePermissionDto = async (permissionDto, em) => {
|
|
99
|
-
const permission = this.#
|
|
99
|
+
const permission = this.#mapperss.UpdatePermissionDtoMapper.deserializeDtoToEntity(permissionDto);
|
|
100
100
|
const addToRoles = permissionDto.addToRolesIds
|
|
101
101
|
? await this.getBatchRoles({ ids: permissionDto.addToRolesIds }, em)
|
|
102
102
|
: [];
|
|
@@ -118,7 +118,7 @@ export class BasePermissionService {
|
|
|
118
118
|
if (!em) {
|
|
119
119
|
this.em.flush();
|
|
120
120
|
}
|
|
121
|
-
return this.#
|
|
121
|
+
return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
|
|
122
122
|
}
|
|
123
123
|
async updateBatchPermissions(permissionDtos, em) {
|
|
124
124
|
const rolesCache = {};
|
|
@@ -146,7 +146,7 @@ export class BasePermissionService {
|
|
|
146
146
|
...Object.values(rolesCache)
|
|
147
147
|
]);
|
|
148
148
|
});
|
|
149
|
-
return permissions.map((permission) => this.#
|
|
149
|
+
return permissions.map((permission) => this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission));
|
|
150
150
|
}
|
|
151
151
|
async deletePermission(idDto, em) {
|
|
152
152
|
await (em ?? this.em).nativeDelete('Permission', idDto);
|
|
@@ -2,7 +2,7 @@ import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http
|
|
|
2
2
|
import { RoleService } from '@forklaunch/interfaces-iam/interfaces';
|
|
3
3
|
import { EntityManager } from '@mikro-orm/core';
|
|
4
4
|
import { IdDto, IdsDto } from '@forklaunch/common';
|
|
5
|
-
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/
|
|
5
|
+
import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
|
|
6
6
|
import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
|
|
7
7
|
import { CreateRoleDto, RoleDto, UpdateRoleDto } from '@forklaunch/interfaces-iam/types';
|
|
8
8
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
@@ -27,12 +27,12 @@ export declare class BaseRoleService<SchemaValidator extends AnySchemaValidator,
|
|
|
27
27
|
em: EntityManager;
|
|
28
28
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
29
29
|
protected schemaValidator: SchemaValidator;
|
|
30
|
-
protected
|
|
30
|
+
protected mapperss: {
|
|
31
31
|
RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
|
|
32
32
|
CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
|
|
33
33
|
UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
|
|
34
34
|
};
|
|
35
|
-
constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator,
|
|
35
|
+
constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
|
|
36
36
|
RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
|
|
37
37
|
CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
|
|
38
38
|
UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../services/role.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../services/role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { transformIntoInternalDtoMapper } from '@forklaunch/core/
|
|
1
|
+
import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
|
|
2
2
|
export class BaseRoleService {
|
|
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 createRole(roleDto, em) {
|
|
16
16
|
// TODO: Think about removing static method here, since we need specific args
|
|
17
|
-
const role = this.#
|
|
17
|
+
const role = this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
|
|
18
18
|
await (em ?? this.em).transactional((em) => em.persist(role));
|
|
19
|
-
return this.#
|
|
19
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
|
|
20
20
|
}
|
|
21
21
|
async createBatchRoles(roleDtos, em) {
|
|
22
|
-
const roles = await Promise.all(roleDtos.map(async (roleDto) => this.#
|
|
22
|
+
const roles = await Promise.all(roleDtos.map(async (roleDto) => this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)));
|
|
23
23
|
await (em ?? this.em).transactional((em) => em.persist(roles));
|
|
24
|
-
return roles.map((role) => this.#
|
|
24
|
+
return roles.map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
|
|
25
25
|
}
|
|
26
26
|
async getRole(idDto, em) {
|
|
27
27
|
const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
|
|
28
28
|
populate: ['id', '*']
|
|
29
29
|
});
|
|
30
|
-
return this.#
|
|
30
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
|
|
31
31
|
}
|
|
32
32
|
async getBatchRoles(idsDto, em) {
|
|
33
33
|
return (await (em ?? this.em).find('Role', idsDto, {
|
|
34
34
|
populate: ['id', '*']
|
|
35
|
-
})).map((role) => this.#
|
|
35
|
+
})).map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
|
|
36
36
|
}
|
|
37
37
|
async updateRole(roleDto, em) {
|
|
38
|
-
let role = this.#
|
|
38
|
+
let role = this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto);
|
|
39
39
|
await (em ?? this.em).transactional(async (em) => {
|
|
40
40
|
role = (await em.upsert('Role', role));
|
|
41
41
|
});
|
|
42
|
-
return this.#
|
|
42
|
+
return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
|
|
43
43
|
}
|
|
44
44
|
async updateBatchRoles(roleDtos, em) {
|
|
45
|
-
let roles = await Promise.all(roleDtos.map(async (roleDto) => this.#
|
|
45
|
+
let roles = await Promise.all(roleDtos.map(async (roleDto) => this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)));
|
|
46
46
|
await (em ?? this.em).transactional(async (em) => {
|
|
47
47
|
roles = await em.upsertMany('Role', roles);
|
|
48
48
|
});
|
|
49
|
-
return roles.map((role) => this.#
|
|
49
|
+
return roles.map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
|
|
50
50
|
}
|
|
51
51
|
async deleteRole(idDto, em) {
|
|
52
52
|
await (em ?? this.em).nativeDelete('Role', idDto);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OrganizationService, RoleService, UserService } 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 { CreateUserDto, UpdateUserDto, UserDto } from '@forklaunch/interfaces-iam/types';
|
|
@@ -30,12 +30,12 @@ export declare class BaseUserService<SchemaValidator extends AnySchemaValidator,
|
|
|
30
30
|
protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
|
|
31
31
|
protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
|
|
32
32
|
protected schemaValidator: SchemaValidator;
|
|
33
|
-
protected
|
|
33
|
+
protected mapperss: {
|
|
34
34
|
UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
|
|
35
35
|
CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
|
|
36
36
|
UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
|
|
37
37
|
};
|
|
38
|
-
constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator,
|
|
38
|
+
constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
|
|
39
39
|
UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
|
|
40
40
|
CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
|
|
41
41
|
UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAEL,2BAA2B,EAC3B,4BAA4B,EAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../services/user.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { transformIntoInternalDtoMapper } from '@forklaunch/core/
|
|
1
|
+
import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
|
|
2
2
|
export class BaseUserService {
|
|
3
3
|
em;
|
|
4
4
|
passwordEncryptionPublicKeyPath;
|
|
@@ -6,56 +6,56 @@ export class BaseUserService {
|
|
|
6
6
|
organizationServiceFactory;
|
|
7
7
|
openTelemetryCollector;
|
|
8
8
|
schemaValidator;
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
constructor(em, passwordEncryptionPublicKeyPath, roleServiceFactory, organizationServiceFactory, openTelemetryCollector, schemaValidator,
|
|
9
|
+
mapperss;
|
|
10
|
+
#mapperss;
|
|
11
|
+
constructor(em, passwordEncryptionPublicKeyPath, roleServiceFactory, organizationServiceFactory, openTelemetryCollector, schemaValidator, mapperss) {
|
|
12
12
|
this.em = em;
|
|
13
13
|
this.passwordEncryptionPublicKeyPath = passwordEncryptionPublicKeyPath;
|
|
14
14
|
this.roleServiceFactory = roleServiceFactory;
|
|
15
15
|
this.organizationServiceFactory = organizationServiceFactory;
|
|
16
16
|
this.openTelemetryCollector = openTelemetryCollector;
|
|
17
17
|
this.schemaValidator = schemaValidator;
|
|
18
|
-
this.
|
|
19
|
-
this.#
|
|
18
|
+
this.mapperss = mapperss;
|
|
19
|
+
this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
|
|
20
20
|
}
|
|
21
21
|
async createUser(userDto, em) {
|
|
22
|
-
const user = await this.#
|
|
22
|
+
const user = await this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(userDto, this.passwordEncryptionPublicKeyPath);
|
|
23
23
|
((await em) ?? this.em).transactional(async (em) => {
|
|
24
24
|
await em.persist(user);
|
|
25
25
|
});
|
|
26
|
-
return this.#
|
|
26
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
|
|
27
27
|
}
|
|
28
28
|
async createBatchUsers(userDtos, em) {
|
|
29
|
-
const users = await Promise.all(userDtos.map(async (createUserDto) => this.#
|
|
29
|
+
const users = await Promise.all(userDtos.map(async (createUserDto) => this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(createUserDto, this.passwordEncryptionPublicKeyPath)));
|
|
30
30
|
await (em ?? this.em).transactional(async (em) => {
|
|
31
31
|
await em.persist(users);
|
|
32
32
|
});
|
|
33
|
-
return users.map((user) => this.#
|
|
33
|
+
return users.map((user) => this.#mapperss.UserDtoMapper.serializeEntityToDto(user));
|
|
34
34
|
}
|
|
35
35
|
async getUser(idDto, em) {
|
|
36
36
|
const user = await (em ?? this.em).findOneOrFail('User', idDto, {
|
|
37
37
|
populate: ['id', '*']
|
|
38
38
|
});
|
|
39
|
-
return this.#
|
|
39
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
|
|
40
40
|
}
|
|
41
41
|
async getBatchUsers(idsDto, em) {
|
|
42
42
|
return (await (em ?? this.em).find('User', idsDto, {
|
|
43
43
|
populate: ['id', '*']
|
|
44
|
-
})).map((user) => this.#
|
|
44
|
+
})).map((user) => this.#mapperss.UserDtoMapper.serializeEntityToDto(user));
|
|
45
45
|
}
|
|
46
46
|
async updateUser(userDto, em) {
|
|
47
|
-
let user = this.#
|
|
47
|
+
let user = this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(userDto, this.passwordEncryptionPublicKeyPath);
|
|
48
48
|
await (em ?? this.em).transactional(async (localEm) => {
|
|
49
49
|
user = await localEm.upsert(user);
|
|
50
50
|
});
|
|
51
|
-
return this.#
|
|
51
|
+
return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
|
|
52
52
|
}
|
|
53
53
|
async updateBatchUsers(userDtos, em) {
|
|
54
|
-
let users = await Promise.all(userDtos.map(async (updateUserDto) => this.#
|
|
54
|
+
let users = await Promise.all(userDtos.map(async (updateUserDto) => this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(updateUserDto, this.passwordEncryptionPublicKeyPath)));
|
|
55
55
|
await (em ?? this.em).transactional(async (localEm) => {
|
|
56
56
|
users = await localEm.upsertMany(users);
|
|
57
57
|
});
|
|
58
|
-
return users.map((user) => this.#
|
|
58
|
+
return users.map((user) => this.#mapperss.UserDtoMapper.serializeEntityToDto(user));
|
|
59
59
|
}
|
|
60
60
|
async deleteUser(idDto, em) {
|
|
61
61
|
const entityManager = em || this.em;
|