From b055e21cc417a1efa6154c72d8d406a022128cad Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Thu, 18 Jul 2024 03:20:15 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[FEAT/#106]=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=84=9C=EB=B2=84=ED=86=B5=EC=8B=A0=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/terning/point/di/DataSourceModule.kt | 10 +++- .../com/terning/point/di/RepositoryModule.kt | 10 +++- .../com/terning/point/di/ServiceModule.kt | 8 ++- .../data/datasource/MyPageDataSource.kt | 7 +++ .../datasourceimpl/MyPageDataSourceImpl.kt | 12 +++++ .../repositoryimpl/MyPageRepositoryImpl.kt | 14 +++++ .../com/terning/data/service/MyPageService.kt | 10 ++++ .../domain/repository/MyPageRepository.kt | 5 ++ feature/build.gradle.kts | 1 + .../com/terning/feature/mypage/MyPageRoute.kt | 17 +++++- .../com/terning/feature/mypage/MyPageState.kt | 7 +++ .../terning/feature/mypage/MyPageViewModel.kt | 53 ++++++++++++++++++- 12 files changed, 146 insertions(+), 8 deletions(-) create mode 100644 data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt create mode 100644 data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt create mode 100644 data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt create mode 100644 data/src/main/java/com/terning/data/service/MyPageService.kt create mode 100644 domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt create mode 100644 feature/src/main/java/com/terning/feature/mypage/MyPageState.kt diff --git a/app/src/main/java/com/terning/point/di/DataSourceModule.kt b/app/src/main/java/com/terning/point/di/DataSourceModule.kt index d5ad31320..ff0aff976 100644 --- a/app/src/main/java/com/terning/point/di/DataSourceModule.kt +++ b/app/src/main/java/com/terning/point/di/DataSourceModule.kt @@ -3,15 +3,17 @@ package com.terning.point.di import com.terning.data.datasource.AuthDataSource import com.terning.data.datasource.CalendarDataSource import com.terning.data.datasource.FilteringDataSource -import com.terning.data.datasource.InternDataSource import com.terning.data.datasource.HomeDataSource +import com.terning.data.datasource.InternDataSource +import com.terning.data.datasource.MyPageDataSource import com.terning.data.datasource.SearchDataSource import com.terning.data.datasource.TokenReissueDataSource import com.terning.data.datasourceimpl.AuthDataSourceImpl import com.terning.data.datasourceimpl.CalendarDataSourceImpl import com.terning.data.datasourceimpl.FilteringDataSourceImpl -import com.terning.data.datasourceimpl.InternDataSourceImpl import com.terning.data.datasourceimpl.HomeDataSourceImpl +import com.terning.data.datasourceimpl.InternDataSourceImpl +import com.terning.data.datasourceimpl.MyPageDataSourceImpl import com.terning.data.datasourceimpl.SearchDataSourceImpl import com.terning.data.datasourceimpl.TokenReissueDataSourceImpl import dagger.Binds @@ -53,4 +55,8 @@ abstract class DataSourceModule { @Binds @Singleton abstract fun bindHomeDataSource(homeDataSourceImpl: HomeDataSourceImpl): HomeDataSource + + @Binds + @Singleton + abstract fun bindMyPageDataSource(myPageDataSourceImpl: MyPageDataSourceImpl): MyPageDataSource } \ No newline at end of file diff --git a/app/src/main/java/com/terning/point/di/RepositoryModule.kt b/app/src/main/java/com/terning/point/di/RepositoryModule.kt index 619294824..8dee61198 100644 --- a/app/src/main/java/com/terning/point/di/RepositoryModule.kt +++ b/app/src/main/java/com/terning/point/di/RepositoryModule.kt @@ -3,16 +3,18 @@ package com.terning.point.di import com.terning.data.repositoryimpl.AuthRepositoryImpl import com.terning.data.repositoryimpl.CalendarRepositoryImpl import com.terning.data.repositoryimpl.FilteringRepositoryImpl -import com.terning.data.repositoryimpl.InternRepositoryImpl import com.terning.data.repositoryimpl.HomeRepositoryImpl +import com.terning.data.repositoryimpl.InternRepositoryImpl +import com.terning.data.repositoryimpl.MyPageRepositoryImpl import com.terning.data.repositoryimpl.SearchRepositoryImpl import com.terning.data.repositoryimpl.TokenReissueRepositoryImpl import com.terning.data.repositoryimpl.TokenRepositoryImpl import com.terning.domain.repository.AuthRepository import com.terning.domain.repository.CalendarRepository import com.terning.domain.repository.FilteringRepository -import com.terning.domain.repository.InternRepository import com.terning.domain.repository.HomeRepository +import com.terning.domain.repository.InternRepository +import com.terning.domain.repository.MyPageRepository import com.terning.domain.repository.SearchRepository import com.terning.domain.repository.TokenReissueRepository import com.terning.domain.repository.TokenRepository @@ -57,4 +59,8 @@ abstract class RepositoryModule { @Binds @Singleton abstract fun bindHomeRepository(homeRepositoryImpl: HomeRepositoryImpl): HomeRepository + + @Binds + @Singleton + abstract fun bindMyPageRepository(myPageRepositoryImpl: MyPageRepositoryImpl): MyPageRepository } \ No newline at end of file diff --git a/app/src/main/java/com/terning/point/di/ServiceModule.kt b/app/src/main/java/com/terning/point/di/ServiceModule.kt index 96c52a2eb..fd6b252b2 100644 --- a/app/src/main/java/com/terning/point/di/ServiceModule.kt +++ b/app/src/main/java/com/terning/point/di/ServiceModule.kt @@ -2,9 +2,10 @@ package com.terning.point.di import com.terning.data.service.AuthService import com.terning.data.service.CalendarService -import com.terning.data.service.InternService import com.terning.data.service.FilteringService import com.terning.data.service.HomeService +import com.terning.data.service.InternService +import com.terning.data.service.MyPageService import com.terning.data.service.SearchService import com.terning.data.service.TokenReissueService import com.terning.point.di.qualifier.JWT @@ -55,4 +56,9 @@ object ServiceModule { @Singleton fun provideHomeService(@JWT retrofit: Retrofit): HomeService = retrofit.create(HomeService::class.java) + + @Provides + @Singleton + fun provideMyPageService(@JWT retrofit: Retrofit): MyPageService = + retrofit.create(MyPageService::class.java) } \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt b/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt new file mode 100644 index 000000000..c543a9ac5 --- /dev/null +++ b/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt @@ -0,0 +1,7 @@ +package com.terning.data.datasource + +import com.terning.data.dto.NonDataBaseResponse + +interface MyPageDataSource { + suspend fun patchLogout(): NonDataBaseResponse +} \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt new file mode 100644 index 000000000..a635ce12f --- /dev/null +++ b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt @@ -0,0 +1,12 @@ +package com.terning.data.datasourceimpl + +import com.terning.data.datasource.MyPageDataSource +import com.terning.data.dto.NonDataBaseResponse +import com.terning.data.service.MyPageService +import javax.inject.Inject + +class MyPageDataSourceImpl @Inject constructor( + private val myPageService: MyPageService +) : MyPageDataSource { + override suspend fun patchLogout(): NonDataBaseResponse = myPageService.patchLogout() +} \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt b/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt new file mode 100644 index 000000000..4b161b4f6 --- /dev/null +++ b/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt @@ -0,0 +1,14 @@ +package com.terning.data.repositoryimpl + +import com.terning.data.datasource.MyPageDataSource +import com.terning.domain.repository.MyPageRepository +import javax.inject.Inject + +class MyPageRepositoryImpl @Inject constructor( + private val myPageDataSource: MyPageDataSource +) : MyPageRepository { + override suspend fun patchLogout(): Result = + runCatching { + myPageDataSource.patchLogout() + } +} \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/service/MyPageService.kt b/data/src/main/java/com/terning/data/service/MyPageService.kt new file mode 100644 index 000000000..ebab899fa --- /dev/null +++ b/data/src/main/java/com/terning/data/service/MyPageService.kt @@ -0,0 +1,10 @@ +package com.terning.data.service + +import com.terning.data.dto.NonDataBaseResponse +import retrofit2.http.PATCH + +interface MyPageService { + @PATCH("api/v1/mypage/logout") + suspend fun patchLogout(): NonDataBaseResponse + +} \ No newline at end of file diff --git a/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt b/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt new file mode 100644 index 000000000..c4cebf922 --- /dev/null +++ b/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt @@ -0,0 +1,5 @@ +package com.terning.domain.repository + +interface MyPageRepository { + suspend fun patchLogout() : Result +} \ No newline at end of file diff --git a/feature/build.gradle.kts b/feature/build.gradle.kts index 372c480bb..ecb21af29 100644 --- a/feature/build.gradle.kts +++ b/feature/build.gradle.kts @@ -90,6 +90,7 @@ dependencies { implementation(libs.timber) implementation(libs.ossLicense) implementation(libs.lottie) + implementation(libs.process.phoenix) // Compose Preview debugImplementation(libs.compose.ui.tooling) diff --git a/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt b/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt index d65f3debb..6d62a680a 100644 --- a/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt +++ b/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt @@ -16,9 +16,11 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.terning.core.designsystem.component.bottomsheet.MyPageLogoutBottomSheet import com.terning.core.designsystem.component.bottomsheet.MyPageQuitBottomSheet import com.terning.core.designsystem.component.image.TerningImage @@ -30,6 +32,7 @@ import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White import com.terning.core.extension.customShadow import com.terning.core.extension.noRippleClickable +import com.terning.core.state.UiState import com.terning.feature.R import com.terning.feature.mypage.component.MyPageItem @@ -37,6 +40,8 @@ import com.terning.feature.mypage.component.MyPageItem fun MyPageRoute( viewModel: MyPageViewModel = hiltViewModel(), ) { + val state by viewModel.state.collectAsStateWithLifecycle() + val context = LocalContext.current var showLogoutBottomSheet by remember { mutableStateOf(false) } var showQuitBottomSheet by remember { mutableStateOf(false) } @@ -46,7 +51,7 @@ fun MyPageRoute( onDismiss = { showLogoutBottomSheet = false }, onLogoutClick = { showLogoutBottomSheet = false - viewModel.patchLogout() + viewModel.logoutKakao() }, ) } @@ -61,6 +66,16 @@ fun MyPageRoute( ) } + when (state.isSuccess) { + is UiState.Success -> { + viewModel.restartApp(context) + } + + is UiState.Loading -> {} + is UiState.Empty -> {} + is UiState.Failure -> {} + } + MyPageScreen( onLogoutClick = { showLogoutBottomSheet = true }, onQuitClick = { showQuitBottomSheet = true } diff --git a/feature/src/main/java/com/terning/feature/mypage/MyPageState.kt b/feature/src/main/java/com/terning/feature/mypage/MyPageState.kt new file mode 100644 index 000000000..58e86acae --- /dev/null +++ b/feature/src/main/java/com/terning/feature/mypage/MyPageState.kt @@ -0,0 +1,7 @@ +package com.terning.feature.mypage + +import com.terning.core.state.UiState + +data class MyPageState( + val isSuccess: UiState = UiState.Loading +) \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt b/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt index 9d440c0aa..96b10be01 100644 --- a/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt +++ b/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt @@ -1,14 +1,63 @@ package com.terning.feature.mypage +import android.content.Context +import android.content.Intent +import android.os.Handler +import android.os.Looper import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.jakewharton.processphoenix.ProcessPhoenix +import com.kakao.sdk.user.UserApiClient +import com.terning.core.state.UiState +import com.terning.domain.repository.MyPageRepository +import com.terning.domain.repository.TokenRepository +import com.terning.feature.main.MainActivity import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel -class MyPageViewModel @Inject constructor() : ViewModel() { +class MyPageViewModel @Inject constructor( + private val myPageRepository: MyPageRepository, + private val tokenRepository: TokenRepository +) : ViewModel() { - fun patchLogout() { + private val _state: MutableStateFlow = MutableStateFlow(MyPageState()) + val state: StateFlow get() = _state.asStateFlow() + fun logoutKakao() { + UserApiClient.instance.logout { error -> + if (error == null) { + patchLogout() + } else { + _state.value = _state.value.copy(isSuccess = UiState.Failure(error.toString())) + } + } + } + + private fun patchLogout() { + viewModelScope.launch { + myPageRepository.patchLogout().onSuccess { + tokenRepository.clearInfo() + _state.value = _state.value.copy(isSuccess = UiState.Success(true)) + }.onFailure { + _state.value = _state.value.copy(isSuccess = UiState.Failure(it.toString())) + } + } + } + + fun restartApp(context: Context) { + Handler(Looper.getMainLooper()).post { + Handler(Looper.getMainLooper()).post { + ProcessPhoenix.triggerRebirth( + context, + Intent(context, MainActivity::class.java) + ) + } + } } fun patchQuit() { From b0ad8efdf04442fb6e25b37919db82fb27ce5fd3 Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Thu, 18 Jul 2024 03:26:55 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[FEAT/#106]=20=EB=B0=94=ED=85=80=EC=8B=9C?= =?UTF-8?q?=ED=8A=B8=20=EC=95=88=20=EB=82=B4=EB=A0=A4=EA=B0=80=EA=B2=8C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/bottomsheet/MyPageLogoutBottomSheet.kt | 7 +------ .../component/bottomsheet/MyPageQuitBottomSheet.kt | 7 +------ .../main/java/com/terning/feature/mypage/MyPageRoute.kt | 2 -- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageLogoutBottomSheet.kt b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageLogoutBottomSheet.kt index dbe1469a9..0cccd2206 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageLogoutBottomSheet.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageLogoutBottomSheet.kt @@ -48,12 +48,7 @@ fun MyPageLogoutBottomSheet( cornerRadius = 10.dp, text = R.string.my_page_logout_button, onButtonClick = { - scope.launch { sheetState.hide() } - .invokeOnCompletion { - if (!sheetState.isVisible) { - onLogoutClick() - } - } + onLogoutClick() }, modifier = modifier.padding( start = 24.dp, diff --git a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageQuitBottomSheet.kt b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageQuitBottomSheet.kt index c77bc397d..fe722d1aa 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageQuitBottomSheet.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/MyPageQuitBottomSheet.kt @@ -69,12 +69,7 @@ fun MyPageQuitBottomSheet( cornerRadius = 10.dp, text = R.string.my_page_back_button, onButtonClick = { - scope.launch { sheetState.hide() } - .invokeOnCompletion { - if (!sheetState.isVisible) { - onDismiss() - } - } + onDismiss() }, modifier = modifier.padding( start = 24.dp, diff --git a/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt b/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt index 6d62a680a..41173af9a 100644 --- a/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt +++ b/feature/src/main/java/com/terning/feature/mypage/MyPageRoute.kt @@ -50,7 +50,6 @@ fun MyPageRoute( MyPageLogoutBottomSheet( onDismiss = { showLogoutBottomSheet = false }, onLogoutClick = { - showLogoutBottomSheet = false viewModel.logoutKakao() }, ) @@ -60,7 +59,6 @@ fun MyPageRoute( MyPageQuitBottomSheet( onDismiss = { showQuitBottomSheet = false }, onQuitClick = { - showQuitBottomSheet = false viewModel.patchQuit() } ) From 3601c5091b4bb1ef0635bd29f250efd8bf2a91c9 Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Thu, 18 Jul 2024 03:40:38 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[FEAT/#106]=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=99=84=EB=B2=BD=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/src/main/java/com/terning/data/service/MyPageService.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/src/main/java/com/terning/data/service/MyPageService.kt b/data/src/main/java/com/terning/data/service/MyPageService.kt index ebab899fa..464814e07 100644 --- a/data/src/main/java/com/terning/data/service/MyPageService.kt +++ b/data/src/main/java/com/terning/data/service/MyPageService.kt @@ -1,10 +1,10 @@ package com.terning.data.service import com.terning.data.dto.NonDataBaseResponse -import retrofit2.http.PATCH +import retrofit2.http.POST interface MyPageService { - @PATCH("api/v1/mypage/logout") + @POST("api/v1/auth/logout") suspend fun patchLogout(): NonDataBaseResponse } \ No newline at end of file From 6a8c7bc64796ef14ef78d1a9a2629965705af67e Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Thu, 18 Jul 2024 03:46:23 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[FEAT/#106]=20=ED=95=A8=EC=88=98=EB=AA=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/terning/data/datasource/MyPageDataSource.kt | 2 +- .../com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt | 2 +- .../com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt | 4 ++-- .../src/main/java/com/terning/data/service/MyPageService.kt | 3 +-- .../java/com/terning/domain/repository/MyPageRepository.kt | 2 +- .../main/java/com/terning/feature/mypage/MyPageViewModel.kt | 6 +++--- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt b/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt index c543a9ac5..aec35848d 100644 --- a/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt +++ b/data/src/main/java/com/terning/data/datasource/MyPageDataSource.kt @@ -3,5 +3,5 @@ package com.terning.data.datasource import com.terning.data.dto.NonDataBaseResponse interface MyPageDataSource { - suspend fun patchLogout(): NonDataBaseResponse + suspend fun postLogout(): NonDataBaseResponse } \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt index a635ce12f..97a3c5ae9 100644 --- a/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt +++ b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt @@ -8,5 +8,5 @@ import javax.inject.Inject class MyPageDataSourceImpl @Inject constructor( private val myPageService: MyPageService ) : MyPageDataSource { - override suspend fun patchLogout(): NonDataBaseResponse = myPageService.patchLogout() + override suspend fun postLogout(): NonDataBaseResponse = myPageService.patchLogout() } \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt b/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt index 4b161b4f6..580294a1d 100644 --- a/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt +++ b/data/src/main/java/com/terning/data/repositoryimpl/MyPageRepositoryImpl.kt @@ -7,8 +7,8 @@ import javax.inject.Inject class MyPageRepositoryImpl @Inject constructor( private val myPageDataSource: MyPageDataSource ) : MyPageRepository { - override suspend fun patchLogout(): Result = + override suspend fun postLogout(): Result = runCatching { - myPageDataSource.patchLogout() + myPageDataSource.postLogout() } } \ No newline at end of file diff --git a/data/src/main/java/com/terning/data/service/MyPageService.kt b/data/src/main/java/com/terning/data/service/MyPageService.kt index 464814e07..9c73cd98c 100644 --- a/data/src/main/java/com/terning/data/service/MyPageService.kt +++ b/data/src/main/java/com/terning/data/service/MyPageService.kt @@ -5,6 +5,5 @@ import retrofit2.http.POST interface MyPageService { @POST("api/v1/auth/logout") - suspend fun patchLogout(): NonDataBaseResponse - + suspend fun postLogout(): NonDataBaseResponse } \ No newline at end of file diff --git a/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt b/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt index c4cebf922..3e2ac65c7 100644 --- a/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt +++ b/domain/src/main/java/com/terning/domain/repository/MyPageRepository.kt @@ -1,5 +1,5 @@ package com.terning.domain.repository interface MyPageRepository { - suspend fun patchLogout() : Result + suspend fun postLogout() : Result } \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt b/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt index 96b10be01..fdcbf8c50 100644 --- a/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt +++ b/feature/src/main/java/com/terning/feature/mypage/MyPageViewModel.kt @@ -31,16 +31,16 @@ class MyPageViewModel @Inject constructor( fun logoutKakao() { UserApiClient.instance.logout { error -> if (error == null) { - patchLogout() + postLogout() } else { _state.value = _state.value.copy(isSuccess = UiState.Failure(error.toString())) } } } - private fun patchLogout() { + private fun postLogout() { viewModelScope.launch { - myPageRepository.patchLogout().onSuccess { + myPageRepository.postLogout().onSuccess { tokenRepository.clearInfo() _state.value = _state.value.copy(isSuccess = UiState.Success(true)) }.onFailure { From 5cfc9035092d1c3901e14e0119337054ad7de80a Mon Sep 17 00:00:00 2001 From: LEE YOU BIN Date: Thu, 18 Jul 2024 03:54:19 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[FEAT/#106]=20=ED=95=A8=EC=88=98=EB=AA=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt index 97a3c5ae9..d884be7fc 100644 --- a/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt +++ b/data/src/main/java/com/terning/data/datasourceimpl/MyPageDataSourceImpl.kt @@ -8,5 +8,5 @@ import javax.inject.Inject class MyPageDataSourceImpl @Inject constructor( private val myPageService: MyPageService ) : MyPageDataSource { - override suspend fun postLogout(): NonDataBaseResponse = myPageService.patchLogout() + override suspend fun postLogout(): NonDataBaseResponse = myPageService.postLogout() } \ No newline at end of file