Skip to content

Commit 7b6f808

Browse files
authored
Merge pull request #48 from YAPP-Github/BOOK-142-refactor/#47
refactor: 로그인/로그아웃 로직 개선
2 parents 2bfa994 + 23f737c commit 7b6f808

File tree

6 files changed

+9
-28
lines changed

6 files changed

+9
-28
lines changed
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package com.ninecraft.booket.core.data.api.repository
22

3-
import com.ninecraft.booket.core.model.LoginModel
4-
53
interface AuthRepository {
6-
suspend fun login(accessToken: String): Result<LoginModel>
4+
suspend fun login(accessToken: String): Result<Unit>
75
suspend fun logout(): Result<Unit>
8-
suspend fun saveTokens(accessToken: String, refreshToken: String)
9-
suspend fun clearTokens()
106
}

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/mapper/ResponseToModel.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,12 @@ import com.ninecraft.booket.core.common.extensions.decodeHtmlEntities
44
import com.ninecraft.booket.core.model.BookDetailModel
55
import com.ninecraft.booket.core.model.BookSearchModel
66
import com.ninecraft.booket.core.model.BookSummaryModel
7-
import com.ninecraft.booket.core.model.LoginModel
87
import com.ninecraft.booket.core.model.UserProfileModel
98
import com.ninecraft.booket.core.network.response.BookDetailResponse
109
import com.ninecraft.booket.core.network.response.BookSearchResponse
1110
import com.ninecraft.booket.core.network.response.BookSummary
12-
import com.ninecraft.booket.core.network.response.LoginResponse
1311
import com.ninecraft.booket.core.network.response.UserProfileResponse
1412

15-
internal fun LoginResponse.toModel(): LoginModel {
16-
return LoginModel(
17-
accessToken = accessToken,
18-
refreshToken = refreshToken,
19-
)
20-
}
21-
2213
internal fun UserProfileResponse.toModel(): UserProfileModel {
2314
return UserProfileModel(
2415
id = id,

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultAuthRepository.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.ninecraft.booket.core.data.impl.repository
22

33
import com.ninecraft.booket.core.common.utils.runSuspendCatching
44
import com.ninecraft.booket.core.data.api.repository.AuthRepository
5-
import com.ninecraft.booket.core.data.impl.mapper.toModel
65
import com.ninecraft.booket.core.datastore.api.datasource.TokenPreferencesDataSource
76
import com.ninecraft.booket.core.network.request.LoginRequest
87
import com.ninecraft.booket.core.network.service.AuthService
@@ -17,26 +16,28 @@ internal class DefaultAuthRepository @Inject constructor(
1716
private val tokenDatasource: TokenPreferencesDataSource,
1817
) : AuthRepository {
1918
override suspend fun login(accessToken: String) = runSuspendCatching {
20-
noAuthService.login(
19+
val response = noAuthService.login(
2120
LoginRequest(
2221
providerType = KAKAO_PROVIDER_TYPE,
2322
oauthToken = accessToken,
2423
),
25-
).toModel()
24+
)
25+
saveTokens(response.accessToken, response.refreshToken)
2626
}
2727

2828
override suspend fun logout() = runSuspendCatching {
2929
authService.logout()
30+
clearTokens()
3031
}
3132

32-
override suspend fun saveTokens(accessToken: String, refreshToken: String) {
33+
private suspend fun saveTokens(accessToken: String, refreshToken: String) {
3334
tokenDatasource.apply {
3435
setAccessToken(accessToken)
3536
setRefreshToken(refreshToken)
3637
}
3738
}
3839

39-
override suspend fun clearTokens() {
40+
private suspend fun clearTokens() {
4041
tokenDatasource.clearTokens()
4142
}
4243
}

core/model/src/main/kotlin/com/ninecraft/booket/core/model/LoginModel.kt

Lines changed: 0 additions & 6 deletions
This file was deleted.

feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ class LibraryPresenter @AssistedInject constructor(
8787
isLoading = true
8888
authRepository.logout()
8989
.onSuccess {
90-
authRepository.clearTokens()
9190
navigator.resetRoot(LoginScreen)
9291
}
9392
.onFailure { exception ->

feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/LoginPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ class LoginPresenter @AssistedInject constructor(
4949
is LoginUiEvent.Login -> {
5050
scope.launch {
5151
try {
52+
isLoading = true
5253
repository.login(event.accessToken)
53-
.onSuccess { result ->
54-
repository.saveTokens(result.accessToken, result.refreshToken)
54+
.onSuccess {
5555
navigator.goTo(TermsAgreementScreen)
5656
}.onFailure { exception ->
5757
exception.message?.let { Logger.e(it) }

0 commit comments

Comments
 (0)