From 687d88ea2ead33b31d4010c3d5867fec4ef7f649 Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Sat, 4 Jan 2025 06:21:39 -0600 Subject: [PATCH] Update user spaces retrieval based on user status --- src/project/services/project-user.service.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/project/services/project-user.service.ts b/src/project/services/project-user.service.ts index 53d64f1..d69332f 100644 --- a/src/project/services/project-user.service.ts +++ b/src/project/services/project-user.service.ts @@ -3,12 +3,15 @@ import { BaseResponseDto } from '@app/common/dto/base.response.dto'; import { SuccessResponseDto } from '@app/common/dto/success.response.dto'; import { InviteUserRepository } from '@app/common/modules/Invite-user/repositiories'; import { ProjectService } from './project.service'; +import { UserStatusEnum } from '@app/common/constants/user-status.enum'; +import { UserSpaceRepository } from '@app/common/modules/user/repositories'; @Injectable() export class ProjectUserService { constructor( private readonly inviteUserRepository: InviteUserRepository, private readonly projectService: ProjectService, + private readonly userSpaceRepository: UserSpaceRepository, ) {} async getUsersByProject(uuid: string): Promise { @@ -70,6 +73,7 @@ export class ProjectUserService { invitedUserUuid: string, ): Promise { try { + let userSpaces; const user = await this.inviteUserRepository.findOne({ where: { project: { uuid: projectUuid }, @@ -96,6 +100,15 @@ export class ProjectUserService { HttpStatus.NOT_FOUND, ); } + if (user.status === UserStatusEnum.ACTIVE) { + const spaces = await this.userSpaceRepository.find({ + where: { user: { inviteUser: { uuid: invitedUserUuid } } }, + relations: ['space'], + }); + userSpaces = spaces.map((space) => space.space); + } else { + userSpaces = user.spaces.map((space) => space.space); + } const createdAt = new Date(user.createdAt); const createdDate = createdAt.toLocaleDateString(); const createdTime = createdAt.toLocaleTimeString(); @@ -106,7 +119,7 @@ export class ProjectUserService { roleType: user.roleType.type, createdDate, createdTime, - spaces: user.spaces.map((space) => space.space), + spaces: userSpaces, }, statusCode: HttpStatus.OK, });