feat(creator): 채널 홈 controller 위치를 정렬한다

This commit is contained in:
2026-06-17 23:06:34 +09:00
parent a1837e8933
commit b5809bbce6
2 changed files with 13 additions and 15 deletions

View File

@@ -1,10 +1,9 @@
package kr.co.vividnext.sodalive.v2.creator.channel.adapter.`in`.web package kr.co.vividnext.sodalive.v2.api.creator.channel.home.adapter.`in`.web
import kr.co.vividnext.sodalive.common.ApiResponse import kr.co.vividnext.sodalive.common.ApiResponse
import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.v2.creator.channel.application.CreatorChannelHomeQueryService import kr.co.vividnext.sodalive.v2.api.creator.channel.home.application.CreatorChannelHomeFacade
import kr.co.vividnext.sodalive.v2.creator.channel.dto.CreatorChannelHomeResponse
import org.springframework.security.core.annotation.AuthenticationPrincipal import org.springframework.security.core.annotation.AuthenticationPrincipal
import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable import org.springframework.web.bind.annotation.PathVariable
@@ -14,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController
@RestController @RestController
@RequestMapping("/api/v2/creator-channels") @RequestMapping("/api/v2/creator-channels")
class CreatorChannelHomeController( class CreatorChannelHomeController(
private val creatorChannelHomeQueryService: CreatorChannelHomeQueryService private val creatorChannelHomeFacade: CreatorChannelHomeFacade
) { ) {
@GetMapping("/{creatorId}/home") @GetMapping("/{creatorId}/home")
fun getHome( fun getHome(
@@ -22,11 +21,9 @@ class CreatorChannelHomeController(
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
) = run { ) = run {
ApiResponse.ok( ApiResponse.ok(
CreatorChannelHomeResponse.from( creatorChannelHomeFacade.getHome(
creatorChannelHomeQueryService.getHome( creatorId = creatorId,
creatorId = creatorId, viewer = requireMember(member)
viewer = requireMember(member)
)
) )
) )
} }

View File

@@ -1,4 +1,4 @@
package kr.co.vividnext.sodalive.v2.creator.channel.adapter.`in`.web package kr.co.vividnext.sodalive.v2.api.creator.channel.home.adapter.`in`.web
import kr.co.vividnext.sodalive.common.CountryContext import kr.co.vividnext.sodalive.common.CountryContext
import kr.co.vividnext.sodalive.i18n.LangContext import kr.co.vividnext.sodalive.i18n.LangContext
@@ -6,8 +6,9 @@ import kr.co.vividnext.sodalive.i18n.SodaMessageSource
import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.MemberAdapter import kr.co.vividnext.sodalive.member.MemberAdapter
import kr.co.vividnext.sodalive.member.MemberRole import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.v2.api.creator.channel.home.application.CreatorChannelHomeFacade
import kr.co.vividnext.sodalive.v2.api.creator.channel.home.dto.CreatorChannelHomeResponse
import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType
import kr.co.vividnext.sodalive.v2.creator.channel.application.CreatorChannelHomeQueryService
import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelActivity import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelActivity
import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelAudioContent import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelAudioContent
import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelCommunityPost import kr.co.vividnext.sodalive.v2.creator.channel.domain.CreatorChannelCommunityPost
@@ -48,7 +49,7 @@ class CreatorChannelHomeControllerTest @Autowired constructor(
private val mockMvc: MockMvc private val mockMvc: MockMvc
) { ) {
@MockBean @MockBean
private lateinit var service: CreatorChannelHomeQueryService private lateinit var facade: CreatorChannelHomeFacade
@MockBean @MockBean
private lateinit var countryContext: CountryContext private lateinit var countryContext: CountryContext
@@ -87,10 +88,10 @@ class CreatorChannelHomeControllerTest @Autowired constructor(
} }
@Test @Test
@DisplayName("크리에이터 채널 홈 조회는 인증 회원과 creatorId를 서비스에 전달하고 성공 응답을 반환한다") @DisplayName("크리에이터 채널 홈 조회는 인증 회원과 creatorId를 facade에 전달하고 성공 응답을 반환한다")
fun shouldReturnCreatorChannelHomeForAuthenticatedMember() { fun shouldReturnCreatorChannelHomeForAuthenticatedMember() {
val viewer = createMember(id = 10L) val viewer = createMember(id = 10L)
Mockito.doReturn(createHome()).`when`(service).getHome( Mockito.doReturn(CreatorChannelHomeResponse.from(createHome())).`when`(facade).getHome(
Mockito.eq(1L), Mockito.eq(1L),
Mockito.any(Member::class.java) ?: viewer, Mockito.any(Member::class.java) ?: viewer,
Mockito.any(LocalDateTime::class.java) ?: LocalDateTime.now() Mockito.any(LocalDateTime::class.java) ?: LocalDateTime.now()
@@ -134,7 +135,7 @@ class CreatorChannelHomeControllerTest @Autowired constructor(
.andExpect(jsonPath("$.data.series[0].isNew").value(true)) .andExpect(jsonPath("$.data.series[0].isNew").value(true))
.andExpect(jsonPath("$.data.series[0].isOriginal").value(true)) .andExpect(jsonPath("$.data.series[0].isOriginal").value(true))
Mockito.verify(service).getHome( Mockito.verify(facade).getHome(
Mockito.eq(1L), Mockito.eq(1L),
Mockito.eq(viewer) ?: viewer, Mockito.eq(viewer) ?: viewer,
Mockito.any(LocalDateTime::class.java) ?: LocalDateTime.now() Mockito.any(LocalDateTime::class.java) ?: LocalDateTime.now()