From dc51cbb5ef11ede7631aafc6f44278d1db6b1ded Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Tue, 12 Mar 2024 15:29:25 +0300 Subject: [PATCH] finshed get room by id api --- src/room/controllers/room.controller.ts | 25 +++++++++++++++++++---- src/room/interfaces/get.room.interface.ts | 1 + src/room/services/room.service.ts | 16 +++++++++++++++ 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/room/controllers/room.controller.ts b/src/room/controllers/room.controller.ts index 2545254..b90210c 100644 --- a/src/room/controllers/room.controller.ts +++ b/src/room/controllers/room.controller.ts @@ -1,5 +1,13 @@ import { RoomService } from '../services/room.service'; -import { Body, Controller, Get, Post, Param, UseGuards } from '@nestjs/common'; +import { + Body, + Controller, + Get, + Post, + UseGuards, + Query, + Param, +} from '@nestjs/common'; import { ApiTags, ApiBearerAuth } from '@nestjs/swagger'; import { JwtAuthGuard } from '../../../libs/common/src/guards/jwt.auth.guard'; import { AddRoomDto } from '../dtos/add.room.dto'; @@ -14,15 +22,24 @@ export class RoomController { @ApiBearerAuth() @UseGuards(JwtAuthGuard) - @Get(':homeId') - async userList(@Param('homeId') homeId: string) { + @Get() + async getRoomsByHomeId(@Query('homeId') homeId: string) { try { return await this.roomService.getRoomsByHomeId(homeId); } catch (err) { throw new Error(err); } } - + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + @Get(':roomId') + async getRoomsByRoomId(@Param('roomId') roomId: string) { + try { + return await this.roomService.getRoomsByRoomId(roomId); + } catch (err) { + throw new Error(err); + } + } @ApiBearerAuth() @UseGuards(JwtAuthGuard) @Post() diff --git a/src/room/interfaces/get.room.interface.ts b/src/room/interfaces/get.room.interface.ts index 2d000a5..56c0d49 100644 --- a/src/room/interfaces/get.room.interface.ts +++ b/src/room/interfaces/get.room.interface.ts @@ -2,6 +2,7 @@ export class GetRoomDetailsInterface { result: { id: string; name: string; + root_id: string; }; } export class GetRoomsIdsInterface { diff --git a/src/room/services/room.service.ts b/src/room/services/room.service.ts index 0bc5b18..095e8df 100644 --- a/src/room/services/room.service.ts +++ b/src/room/services/room.service.ts @@ -96,4 +96,20 @@ export class RoomService { ); } } + async getRoomsByRoomId(roomId: string) { + try { + const response = await this.getRoomDetails(roomId); + + return { + homeId: response.result.root_id, + roomId: response.result.id, + roomName: response.result.name, + }; + } catch (error) { + throw new HttpException( + 'Error fetching rooms', + HttpStatus.INTERNAL_SERVER_ERROR, + ); + } + } }