Skip to content

Commit

Permalink
Feat :: 룸 제목 수정 기능
Browse files Browse the repository at this point in the history
  • Loading branch information
gwon11225 committed Jun 27, 2024
1 parent 516a803 commit 1cfa7c4
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.teamapi.palette.controller

import com.teamapi.palette.dto.room.CreateRoomRequest
import com.teamapi.palette.dto.room.UpdateRoomTitleRequest
import com.teamapi.palette.response.Response
import com.teamapi.palette.response.ResponseBody
import com.teamapi.palette.service.RoomService
Expand All @@ -19,6 +20,13 @@ class RoomController (
fun getRoomList() = roomService.getRoomList()
.map { ResponseBody.ok("룸 조회 성공", it) }

@PatchMapping("/title")
fun updateRoomTitle(
@RequestBody updateRoomTitleRequest: UpdateRoomTitleRequest
) = roomService
.updateRoomTitle(updateRoomTitleRequest)
.thenReturn(Response.ok("룸 업데이트 완료"))

@DeleteMapping("/{roomId}")
fun deleteRoom(@PathVariable roomId: Long) = roomService.deleteRoom(roomId)
.thenReturn(Response.ok("룸 삭제 완료"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.teamapi.palette.dto.room

data class UpdateRoomTitleRequest (
val id: Long,
val title: String
)
2 changes: 1 addition & 1 deletion src/main/kotlin/com/teamapi/palette/entity/Room.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.springframework.data.relational.core.mapping.Column
data class Room(
@Id
val id: Long? = null,
val title: String? = null,
val title: String? = "New Chat",
@Column("user_id")
val userId: Long
)
23 changes: 22 additions & 1 deletion src/main/kotlin/com/teamapi/palette/service/RoomService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.teamapi.palette.service

import com.teamapi.palette.dto.room.CreateRoomRequest
import com.teamapi.palette.dto.room.RoomResponse
import com.teamapi.palette.dto.room.UpdateRoomTitleRequest
import com.teamapi.palette.entity.Room
import com.teamapi.palette.repository.RoomRepository
import com.teamapi.palette.repository.UserRepository
Expand All @@ -23,7 +24,7 @@ class RoomService (
.me()
.findUser(userRepository)
.flatMap {
roomRepository.save(Room(userId = it.id!!, title = request.title)).then()
roomRepository.save(Room(userId = it.id!!)).then()
}
}

Expand All @@ -40,6 +41,26 @@ class RoomService (
.collectList()
}

fun updateRoomTitle(updateRoomTitleRequest: UpdateRoomTitleRequest): Mono<Void> {
return sessionHolder
.me()
.findUser(userRepository)
.flatMap { user ->
roomRepository
.findById(updateRoomTitleRequest.id)
.switchIfEmpty { Mono.error(CustomException(ErrorCode.ROOM_NOT_FOUND)) }
.flatMap { room ->
if (user.id == room.userId) {
roomRepository
.save(room.copy(title = updateRoomTitleRequest.title))
} else {
Mono.error(CustomException(ErrorCode.FORBIDDEN))
}
}
}
.then()
}

fun deleteRoom(roomId: Long): Mono<Void> {
return sessionHolder
.me()
Expand Down

0 comments on commit 1cfa7c4

Please sign in to comment.