File tree Expand file tree Collapse file tree
common/src/main/java/com/neki/android/core/common/exception
data-api/src/main/java/com/neki/android/core/dataapi/repository
data/src/main/java/com/neki/android/core/data/repository/impl
feature/pose/impl/src/main/java/com/neki/android/feature/pose/impl/random Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com.neki.android.core.common.exception
2+
3+ object ApiErrorCode {
4+ const val NO_MORE_RANDOM_POSE = 400
5+ }
Original file line number Diff line number Diff line change 11package com.neki.android.core.common.exception
22
3- class ServerApiException (
4- val code : Int ,
5- message : String ,
6- ) : Throwable(message)
3+ open class NekiApiException (
4+ open val code : Int ,
5+ override val message : String ,
6+ override val cause : Throwable ? ,
7+ ) : Exception(message, cause)
78
8- class ClientApiException (
9- val code : Int ,
10- message : String ,
11- ) : Throwable(message)
9+ class NoMorePoseException (
10+ override val code : Int ,
11+ override val message : String ,
12+ override val cause : Throwable ? ,
13+ ) : NekiApiException(code, message, cause)
Original file line number Diff line number Diff line change @@ -6,8 +6,6 @@ import com.neki.android.core.model.Pose
66import com.neki.android.core.model.SortOrder
77import kotlinx.coroutines.flow.Flow
88
9- const val NO_MORE_RANDOM_POSE = 400
10-
119interface PoseRepository {
1210
1311 fun getPosesFlow (
Original file line number Diff line number Diff line change @@ -3,12 +3,12 @@ package com.neki.android.core.data.repository.impl
33import androidx.paging.Pager
44import androidx.paging.PagingConfig
55import androidx.paging.PagingData
6- import com.neki.android.core.common.exception.ClientApiException
6+ import com.neki.android.core.common.exception.ApiErrorCode.NO_MORE_RANDOM_POSE
7+ import com.neki.android.core.common.exception.NoMorePoseException
78import com.neki.android.core.data.paging.PosePagingSource
89import com.neki.android.core.data.paging.ScrapPosePagingSource
910import com.neki.android.core.data.remote.api.PoseService
1011import com.neki.android.core.data.util.runSuspendCatching
11- import com.neki.android.core.dataapi.repository.NO_MORE_RANDOM_POSE
1212import com.neki.android.core.dataapi.repository.PoseRepository
1313import com.neki.android.core.model.PeopleCount
1414import com.neki.android.core.model.Pose
@@ -81,8 +81,9 @@ class PoseRepositoryImpl @Inject constructor(
8181 ).data.toModel()
8282 } catch (e: ClientRequestException ) {
8383 if (e.response.status.value == NO_MORE_RANDOM_POSE )
84- throw ClientApiException (NO_MORE_RANDOM_POSE , e.message)
85- else throw e
84+ throw NoMorePoseException (NO_MORE_RANDOM_POSE , e.message, e)
85+ else
86+ throw e
8687 }
8788 }
8889
Original file line number Diff line number Diff line change @@ -3,8 +3,8 @@ package com.neki.android.feature.pose.impl.random
33import androidx.lifecycle.ViewModel
44import androidx.lifecycle.viewModelScope
55import com.neki.android.core.common.coroutine.di.ApplicationScope
6- import com.neki.android.core.common.exception.ClientApiException
7- import com.neki.android.core.dataapi.repository.NO_MORE_RANDOM_POSE
6+ import com.neki.android.core.common.exception.ApiErrorCode.NO_MORE_RANDOM_POSE
7+ import com.neki.android.core.common.exception.NoMorePoseException
88import com.neki.android.core.dataapi.repository.PoseRepository
99import com.neki.android.core.dataapi.repository.UserRepository
1010import com.neki.android.core.model.PeopleCount
@@ -168,7 +168,7 @@ internal class RandomPoseViewModel @AssistedInject constructor(
168168 )
169169 }
170170 }.onFailure { error ->
171- if (error is ClientApiException && error.code == NO_MORE_RANDOM_POSE ) {
171+ if (error is NoMorePoseException && error.code == NO_MORE_RANDOM_POSE ) {
172172 reduce { copy(hasNewPose = false ) }
173173 postSideEffect(RandomPoseEffect .ShowToast (" 모든 포즈를 불러왔어요" ))
174174 } else Timber .e(error)
You can’t perform that action at this time.
0 commit comments