test #294
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ interface LiveRoomQueryRepository {
 | 
			
		||||
        offset: Long,
 | 
			
		||||
        limit: Long,
 | 
			
		||||
        timezone: String,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom>
 | 
			
		||||
@@ -38,14 +38,14 @@ interface LiveRoomQueryRepository {
 | 
			
		||||
        date: LocalDateTime,
 | 
			
		||||
        offset: Long,
 | 
			
		||||
        limit: Long,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom>
 | 
			
		||||
 | 
			
		||||
    fun getLiveRoomListReservationWithoutDate(
 | 
			
		||||
        timezone: String,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom>
 | 
			
		||||
@@ -72,7 +72,7 @@ class LiveRoomQueryRepositoryImpl(
 | 
			
		||||
        offset: Long,
 | 
			
		||||
        limit: Long,
 | 
			
		||||
        timezone: String,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom> {
 | 
			
		||||
@@ -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<LiveRoom> {
 | 
			
		||||
@@ -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<LiveRoom> {
 | 
			
		||||
@@ -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))
 | 
			
		||||
 
 | 
			
		||||
@@ -118,42 +118,54 @@ class LiveRoomService(
 | 
			
		||||
        status: LiveRoomStatus,
 | 
			
		||||
        isAdultContentVisible: Boolean,
 | 
			
		||||
        pageable: Pageable,
 | 
			
		||||
        member: Member,
 | 
			
		||||
        member: Member?,
 | 
			
		||||
        timezone: String
 | 
			
		||||
    ): List<GetRoomListResponse> {
 | 
			
		||||
        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<LiveRoom> {
 | 
			
		||||
@@ -220,7 +232,7 @@ class LiveRoomService(
 | 
			
		||||
        dateString: String,
 | 
			
		||||
        pageable: Pageable,
 | 
			
		||||
        timezone: String,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom> {
 | 
			
		||||
@@ -242,7 +254,7 @@ class LiveRoomService(
 | 
			
		||||
 | 
			
		||||
    private fun getLiveRoomListReservationWithoutDate(
 | 
			
		||||
        timezone: String,
 | 
			
		||||
        memberId: Long,
 | 
			
		||||
        memberId: Long?,
 | 
			
		||||
        isCreator: Boolean,
 | 
			
		||||
        isAdult: Boolean
 | 
			
		||||
    ): List<LiveRoom> {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user