Skip to content

Commit cca5dee

Browse files
authored
Add roles to route getUsersByIds (#53)
1 parent 45fbc74 commit cca5dee

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/controllers/users/get-users-by-ids.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {ApiTag} from '../../components/api-docs';
44
import {makeReqParser, z, zc} from '../../components/zod';
55
import {CONTENT_TYPE_JSON} from '../../constants/content-type';
66
import {getUsersByIds} from '../../services/users/get-users-by-Ids';
7-
import {userModelArray} from '../reponse-models/users/user-model-array';
7+
import {userWithRolesModelArray} from '../reponse-models/users/user-with-roles-model-array';
88

99
const requestSchema = {
1010
body: z.object({
@@ -16,7 +16,7 @@ const parseReq = makeReqParser(requestSchema);
1616

1717
const responseSchema = z
1818
.object({
19-
users: userModelArray.schema,
19+
users: userWithRolesModelArray.schema,
2020
})
2121
.describe('Users by ids');
2222

@@ -25,8 +25,9 @@ export type GetUsersByIdsModel = z.infer<typeof responseSchema>;
2525
const format = async (
2626
data: Awaited<ReturnType<typeof getUsersByIds>>,
2727
): Promise<GetUsersByIdsModel> => {
28+
const users = data.users.map((user) => ({...user, roles: user.roles.map(({role}) => role)}));
2829
return {
29-
users: await userModelArray.format(data.users),
30+
users: await userWithRolesModelArray.format(users),
3031
};
3132
};
3233

src/tests/int/env/opensource/suites/users/get-users-by-ids.test.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type CreatedUsers = {
1313
user3: ReturnType<typeof pickCreatedUserFields>;
1414
};
1515

16-
const pickCreatedUserFields = (user: UserModel) => ({
16+
const pickCreatedUserFields = (user: UserModel, roles: UserRole[]) => ({
1717
...pick(user, [
1818
UserModelColumn.Login,
1919
UserModelColumn.Email,
@@ -23,6 +23,7 @@ const pickCreatedUserFields = (user: UserModel) => ({
2323
UserModelColumn.IdpType,
2424
]),
2525
userId: encodeId(user.userId),
26+
roles: expect.toIncludeSameMembers(roles),
2627
});
2728

2829
describe('Get users by ids', () => {
@@ -36,18 +37,20 @@ describe('Get users by ids', () => {
3637
3738
roles: [UserRole.Visitor],
3839
});
39-
createdUsers['user1'] = pickCreatedUserFields(user1);
40+
createdUsers['user1'] = pickCreatedUserFields(user1, [UserRole.Visitor]);
4041

4142
const user2 = await createTestUsers({
4243
login: 'user2',
4344
firstName: 'User2',
45+
roles: [UserRole.Viewer],
4446
});
45-
createdUsers['user2'] = pickCreatedUserFields(user2);
47+
createdUsers['user2'] = pickCreatedUserFields(user2, [UserRole.Viewer]);
4648

4749
const user3 = await createTestUsers({
4850
login: 'user3',
51+
roles: [UserRole.Viewer],
4952
});
50-
createdUsers['user3'] = pickCreatedUserFields(user3);
53+
createdUsers['user3'] = pickCreatedUserFields(user3, [UserRole.Viewer]);
5154

5255
userTokens = await generateTokens({userId: user1.userId});
5356
});

0 commit comments

Comments
 (0)