Skip to content

Commit 5b7e509

Browse files
committed
[BOOK-89] refactor: handleAuthError 와 handleException 함수 통합
1 parent e25e743 commit 5b7e509

File tree

3 files changed

+26
-42
lines changed

3 files changed

+26
-42
lines changed

core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleAuthError.kt

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

core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,31 @@ import java.net.ConnectException
66
import java.net.SocketTimeoutException
77
import java.net.UnknownHostException
88

9-
interface ErrorHandlerActions {
10-
fun setServerErrorDialogVisible(flag: Boolean)
11-
fun setNetworkErrorDialogVisible(flag: Boolean)
12-
}
9+
fun handleException(
10+
exception: Throwable,
11+
onLoginRequired: () -> Unit,
12+
onServerError: (String) -> Unit,
13+
onNetworkError: (String) -> Unit,
14+
) {
15+
when {
16+
exception is HttpException && exception.code() == 401 -> {
17+
onLoginRequired()
18+
}
1319

14-
fun handleException(exception: Throwable, actions: ErrorHandlerActions) {
15-
when (exception) {
16-
is HttpException -> {
17-
if (exception.code() in 500..599) {
18-
actions.setServerErrorDialogVisible(true)
19-
} else {
20-
exception.message?.let { Logger.e(it) }
21-
}
20+
exception is HttpException && exception.code() in 500..599 -> {
21+
onServerError("서버 오류가 발생했습니다.")
2222
}
2323

24-
is UnknownHostException, is ConnectException -> {
25-
actions.setNetworkErrorDialogVisible(true)
24+
exception is UnknownHostException || exception is ConnectException -> {
25+
onNetworkError("네트워크 연결을 확인해주세요.")
2626
}
2727

28-
is SocketTimeoutException -> {
29-
actions.setServerErrorDialogVisible(true)
28+
exception is SocketTimeoutException -> {
29+
onServerError("서버 응답 시간이 초과되었습니다.")
3030
}
3131

3232
else -> {
33-
exception.message?.let { Logger.e(it) }
33+
Logger.e(exception.message ?: "알 수 없는 오류가 발생했습니다.")
3434
}
3535
}
3636
}

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import androidx.compose.runtime.getValue
55
import androidx.compose.runtime.mutableStateOf
66
import androidx.compose.runtime.rememberCoroutineScope
77
import androidx.compose.runtime.setValue
8-
import com.ninecraft.booket.core.common.utils.handleAuthError
8+
import com.ninecraft.booket.core.common.utils.handleException
99
import com.ninecraft.booket.core.data.api.repository.AuthRepository
1010
import com.ninecraft.booket.feature.login.LoginScreen
1111
import com.orhanobut.logger.Logger
@@ -46,12 +46,15 @@ class LibraryPresenter @AssistedInject constructor(
4646
navigator.resetRoot(LoginScreen)
4747
}
4848
.onFailure { exception ->
49-
handleAuthError(
49+
val handleErrorMessage = { message: String ->
50+
Logger.e(message)
51+
sideEffect = LibraryScreen.SideEffect.ShowToast(message)
52+
}
53+
54+
handleException(
5055
exception = exception,
51-
onGeneralError = { message ->
52-
Logger.e(message)
53-
sideEffect = LibraryScreen.SideEffect.ShowToast(message)
54-
},
56+
onServerError = handleErrorMessage,
57+
onNetworkError = handleErrorMessage,
5558
onLoginRequired = {
5659
navigator.resetRoot(LoginScreen)
5760
},

0 commit comments

Comments
 (0)