From da23253a9ce60ea9ea696ee1b326a26ec84d60e4 Mon Sep 17 00:00:00 2001 From: klaus Date: Sat, 13 Jun 2026 16:21:59 +0900 Subject: [PATCH] =?UTF-8?q?feat(creator):=20=EC=B1=84=EB=84=90=20=ED=99=88?= =?UTF-8?q?=20=EC=A0=80=EC=9E=A5=EC=86=8C=EB=A5=BC=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/vividnext/sodalive/di/AppDI.kt | 4 +++ .../data/CreatorChannelHomeRepository.kt | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelHomeRepository.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt index a01b4e27..acaf7ec3 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt @@ -176,6 +176,8 @@ import kr.co.vividnext.sodalive.user.UserViewModel import kr.co.vividnext.sodalive.user.find_password.FindPasswordViewModel import kr.co.vividnext.sodalive.user.login.LoginViewModel import kr.co.vividnext.sodalive.user.signup.SignUpViewModel +import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelHomeApi +import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelHomeRepository import kr.co.vividnext.sodalive.v2.main.MainV2ViewModel import kr.co.vividnext.sodalive.v2.main.chat.ChatMainViewModel import kr.co.vividnext.sodalive.v2.main.chat.data.ChatRoomApi @@ -303,6 +305,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) { single { ApiBuilder().build(get(), DmChatApi::class.java) } single { ApiBuilder().build(get(), HomeCreatorRankingApi::class.java) } single { ApiBuilder().build(get(), HomeRecommendationApi::class.java) } + single { ApiBuilder().build(get(), CreatorChannelHomeApi::class.java) } single { ApiBuilder().build(get(), CharacterApi::class.java) } single { ApiBuilder().build(get(), TalkApi::class.java) } single { ApiBuilder().build(get(), CharacterCommentApi::class.java) } @@ -458,6 +461,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) { factory { DmChatRepository(api = get(), realtimeClient = get()) } factory { HomeCreatorRankingRepository(get()) } factory { HomeRecommendationRepository(get()) } + factory { CreatorChannelHomeRepository(api = get(), userRepository = get(), talkApi = get()) } factory { CharacterTabRepository(get()) } factory { CharacterDetailRepository(get(), get()) } factory { CharacterGalleryRepository(get()) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelHomeRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelHomeRepository.kt new file mode 100644 index 00000000..8e839b01 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelHomeRepository.kt @@ -0,0 +1,33 @@ +package kr.co.vividnext.sodalive.v2.creator.channel.data + +import kr.co.vividnext.sodalive.chat.talk.TalkApi +import kr.co.vividnext.sodalive.chat.talk.room.CreateChatRoomRequest +import kr.co.vividnext.sodalive.user.UserRepository + +class CreatorChannelHomeRepository( + private val api: CreatorChannelHomeApi, + private val userRepository: UserRepository, + private val talkApi: TalkApi +) { + fun getHome(creatorId: Long, token: String) = api.getHome( + creatorId = creatorId, + authHeader = token + ) + + fun followCreator( + creatorId: Long, + follow: Boolean, + notify: Boolean, + token: String + ) = userRepository.creatorFollow( + creatorId = creatorId, + follow = follow, + notify = notify, + token = token + ) + + fun createChatRoom(characterId: Long, token: String) = talkApi.createChatRoom( + authHeader = token, + request = CreateChatRoomRequest(characterId) + ) +}