Skip to content

Commit cb99021

Browse files
committed
refactor getUsers service method to return UserEntity and fix types
1 parent fa11a4a commit cb99021

File tree

3 files changed

+10
-29
lines changed

3 files changed

+10
-29
lines changed

src/user/user.controller.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { ApiBearerAuth, ApiBody, ApiOperation, ApiParam, ApiTags } from '@nestjs
1414
import { Request } from 'express';
1515
import { UserEntity } from 'src/entities/user.entity';
1616
import { SuperAdminAuthGuard } from 'src/partner-admin/super-admin-auth.guard';
17+
import { formatUserObject } from 'src/utils/serialize';
1718
import { FirebaseAuthGuard } from '../firebase/firebase-auth.guard';
1819
import { ControllerDecorator } from '../utils/controller.decorator';
1920
import { CreateUserDto } from './dtos/create-user.dto';
@@ -109,7 +110,8 @@ export class UserController {
109110
const { include, fields, limit, ...userQuery } = query.searchCriteria
110111
? JSON.parse(query.searchCriteria)
111112
: { include: [], fields: [], limit: undefined };
112-
return await this.userService.getUsers(userQuery, include, fields, limit);
113+
const users = await this.userService.getUsers(userQuery, include || [], fields, limit);
114+
return users.map((u) => formatUserObject(u));
113115
}
114116

115117
// Use only if users have not been added to mailchimp due to e.g. an ongoing bug

src/user/user.service.spec.ts

+2-13
Original file line numberDiff line numberDiff line change
@@ -515,22 +515,11 @@ describe('UserService', () => {
515515
// TODO - Extend getUser tests. At the moment, this is only used by super admins
516516
describe('getUsers', () => {
517517
it('getUsers', async () => {
518-
const {
519-
subscriptionUser,
520-
therapySession,
521-
partnerAdmin,
522-
partnerAccess,
523-
contactPermission,
524-
serviceEmailsPermission,
525-
courseUser,
526-
eventLog,
527-
...userBase
528-
} = mockUserEntity;
529518
jest
530519
.spyOn(repo, 'find')
531520
.mockImplementationOnce(async () => [{ ...mockUserEntity, email: '[email protected]' }]);
532-
const users = await service.getUsers({ email: '[email protected]' }, {}, [], 10);
533-
expect(users).toEqual([{ user: { ...userBase, email: '[email protected]' }, partnerAccesses: [] }]);
521+
const users = await service.getUsers({ email: '[email protected]' }, [], [], 10);
522+
expect(users).toEqual([{ ...mockUserEntity, email: '[email protected]' }]);
534523
});
535524
});
536525
});

src/user/user.service.ts

+5-15
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { And, ILike, IsNull, Not, Raw, Repository } from 'typeorm';
1818
import { deleteCypressCrispProfiles } from '../api/crisp/crisp-api';
1919
import { AuthService } from '../auth/auth.service';
2020
import { PartnerAccessService, basePartnerAccess } from '../partner-access/partner-access.service';
21-
import { formatGetUsersObject, formatUserObject } from '../utils/serialize';
21+
import { formatUserObject } from '../utils/serialize';
2222
import { generateRandomString } from '../utils/utils';
2323
import { CreateUserDto } from './dtos/create-user.dto';
2424
import { GetUserDto } from './dtos/get-user.dto';
@@ -265,20 +265,12 @@ export class UserService {
265265
partnerAccess?: { userId: string; featureTherapy: boolean; active: boolean };
266266
partnerAdmin?: { partnerAdminId: string };
267267
},
268-
relations: {
269-
partner?: boolean;
270-
partnerAccess?: boolean;
271-
partnerAdmin?: boolean;
272-
courseUser?: boolean;
273-
subscriptionUser?: boolean;
274-
therapySession?: boolean;
275-
eventLog?: boolean;
276-
},
268+
relations: string[],
277269
fields: Array<string>,
278270
limit: number,
279-
): Promise<GetUserDto[] | undefined> {
271+
): Promise<UserEntity[] | undefined> {
280272
const users = await this.userRepository.find({
281-
relations: relations,
273+
relations,
282274
where: {
283275
...(filters.email && { email: ILike(`%${filters.email}%`) }),
284276
...(filters.partnerAccess && {
@@ -305,9 +297,7 @@ export class UserService {
305297
},
306298
...(limit && { take: limit }),
307299
});
308-
309-
const usersDto = users.map((user) => formatGetUsersObject(user));
310-
return usersDto;
300+
return users;
311301
}
312302

313303
// Static bulk upload function to be used in specific cases

0 commit comments

Comments
 (0)