diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt index e457872..c12ae55 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt @@ -86,39 +86,30 @@ class NewRouletteService( fun updateRoulette(memberId: Long, request: UpdateNewRouletteRequest): Boolean { rouletteValidate(can = request.can, items = request.items) - if (request.isActive) { - val rouletteList = repository.findByCreatorId(creatorId = memberId) + val rouletteList = repository.findByCreatorId(creatorId = memberId) - if (rouletteList.isEmpty()) { - throw SodaException("잘못된 요청입니다.") - } - - rouletteList.forEach { - if (it.id == request.id) { - it.can = request.can - it.items = request.items - it.isActive = true - } else { - it.isActive = false - } - - repository.save(it) - } - } else { - val roulette = repository.findByIdOrNull(request.id) - ?: throw SodaException("잘못된 요청입니다.") - - if (roulette.creatorId != memberId) { - throw SodaException("잘못된 요청입니다.") - } - - roulette.can = request.can - roulette.items = request.items - roulette.isActive = false - repository.save(roulette) + if (rouletteList.isEmpty()) { + throw SodaException("잘못된 요청입니다.") } - return request.isActive + var isActive = false + rouletteList.forEach { + if (request.isActive || it.isActive) { + isActive = true + } + + if (it.id == request.id) { + it.can = request.can + it.items = request.items + it.isActive = request.isActive + repository.save(it) + } else if (request.isActive) { + it.isActive = false + repository.save(it) + } + } + + return isActive } fun getRoulette(creatorId: Long, memberId: Long): GetRouletteResponse {