diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomController.kt index 6874e68..74b9bae 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomController.kt @@ -38,8 +38,6 @@ class LiveRoomController( @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, pageable: Pageable ) = run { - if (member == null) throw SodaException("로그인 정보를 확인해주세요.") - ApiResponse.ok( service.getRoomList( dateString, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt index e06153b..9a32539 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt @@ -29,7 +29,7 @@ interface LiveRoomQueryRepository { offset: Long, limit: Long, timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List @@ -38,14 +38,14 @@ interface LiveRoomQueryRepository { date: LocalDateTime, offset: Long, limit: Long, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List fun getLiveRoomListReservationWithoutDate( timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List @@ -72,7 +72,7 @@ class LiveRoomQueryRepositoryImpl( offset: Long, limit: Long, timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List { @@ -85,7 +85,7 @@ class LiveRoomQueryRepositoryImpl( where = where.and(liveRoom.isAdult.isFalse) } - if (isCreator) { + if (isCreator && memberId != null) { where = where.and( liveRoom.isAvailableJoinCreator.isTrue .or(liveRoom.member.id.eq(memberId)) @@ -112,7 +112,7 @@ class LiveRoomQueryRepositoryImpl( date: LocalDateTime, offset: Long, limit: Long, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List { @@ -129,7 +129,7 @@ class LiveRoomQueryRepositoryImpl( where = where.and(liveRoom.isAdult.isFalse) } - if (isCreator) { + if (isCreator && memberId != null) { where = where.and( liveRoom.isAvailableJoinCreator.isTrue .or(liveRoom.member.id.eq(memberId)) @@ -148,7 +148,7 @@ class LiveRoomQueryRepositoryImpl( override fun getLiveRoomListReservationWithoutDate( timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List { @@ -169,7 +169,7 @@ class LiveRoomQueryRepositoryImpl( where = where.and(liveRoom.isAdult.isFalse) } - if (isCreator) { + if (isCreator && memberId != null) { where = where.and( liveRoom.isAvailableJoinCreator.isTrue .or(liveRoom.member.id.eq(memberId)) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 37ecf7b..8a2b52e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -118,42 +118,54 @@ class LiveRoomService( status: LiveRoomStatus, isAdultContentVisible: Boolean, pageable: Pageable, - member: Member, + member: Member?, timezone: String ): List { val roomList = if (status == LiveRoomStatus.NOW) { getLiveRoomListNow( pageable, timezone, - memberId = member.id!!, - isCreator = member.role == MemberRole.CREATOR, - isAdult = member.auth != null && isAdultContentVisible + memberId = member?.id, + isCreator = member?.role == MemberRole.CREATOR, + isAdult = member?.auth != null && isAdultContentVisible ) } else if (dateString != null) { getLiveRoomListReservationWithDate( dateString, pageable, timezone, - memberId = member.id!!, - isCreator = member.role == MemberRole.CREATOR, - isAdult = member.auth != null && isAdultContentVisible + memberId = member?.id, + isCreator = member?.role == MemberRole.CREATOR, + isAdult = member?.auth != null && isAdultContentVisible ) } else { getLiveRoomListReservationWithoutDate( timezone, - isCreator = member.role == MemberRole.CREATOR, - memberId = member.id!!, - isAdult = member.auth != null && isAdultContentVisible + isCreator = member?.role == MemberRole.CREATOR, + memberId = member?.id, + isAdult = member?.auth != null && isAdultContentVisible ) } return roomList - .filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) } + .filter { + if (member?.id != null) { + !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) + } else { + true + } + } .map { val roomInfo = roomInfoRepository.findByIdOrNull(it.id!!) val reservations = it.reservations - .filter { reservation -> reservation.member!!.id!! == member.id!! && reservation.isActive } + .filter { reservation -> + if (member?.id != null) { + reservation.member!!.id!! == member.id!! && reservation.isActive + } else { + true + } + } val beginDateTime = it.beginDateTime .atZone(ZoneId.of("UTC")) @@ -202,7 +214,7 @@ class LiveRoomService( private fun getLiveRoomListNow( pageable: Pageable, timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List { @@ -220,7 +232,7 @@ class LiveRoomService( dateString: String, pageable: Pageable, timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List { @@ -242,7 +254,7 @@ class LiveRoomService( private fun getLiveRoomListReservationWithoutDate( timezone: String, - memberId: Long, + memberId: Long?, isCreator: Boolean, isAdult: Boolean ): List {