mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 21:07:04 +05:30
refactor: move HttpFailure.toError to api
module
Also expose EitherNet as an api dependency since it's part of the public API.
This commit is contained in:
parent
1db8067616
commit
daf66a16bc
6 changed files with 25 additions and 21 deletions
|
@ -13,7 +13,7 @@ import com.slack.eithernet.ApiResult.Success
|
|||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import dev.msfjarvis.claw.android.ui.toError
|
||||
import dev.msfjarvis.claw.api.toError
|
||||
import dev.msfjarvis.claw.core.injection.IODispatcher
|
||||
import dev.msfjarvis.claw.model.LobstersPost
|
||||
import dev.msfjarvis.claw.model.UIPost
|
||||
|
|
|
@ -14,8 +14,8 @@ import dagger.assisted.AssistedFactory
|
|||
import dagger.assisted.AssistedInject
|
||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.PAGE_SIZE
|
||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.STARTING_PAGE_INDEX
|
||||
import dev.msfjarvis.claw.android.ui.toError
|
||||
import dev.msfjarvis.claw.api.LobstersSearchApi
|
||||
import dev.msfjarvis.claw.api.toError
|
||||
import dev.msfjarvis.claw.core.injection.IODispatcher
|
||||
import dev.msfjarvis.claw.model.LobstersPost
|
||||
import dev.msfjarvis.claw.model.UIPost
|
||||
|
|
|
@ -8,14 +8,11 @@ package dev.msfjarvis.claw.android.ui
|
|||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.slack.eithernet.ApiResult
|
||||
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
|
||||
import dev.msfjarvis.claw.common.posts.PostActions
|
||||
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
|
||||
import dev.msfjarvis.claw.model.LinkMetadata
|
||||
import dev.msfjarvis.claw.model.UIPost
|
||||
import java.io.IOException
|
||||
import java.net.HttpURLConnection
|
||||
|
||||
fun PostActions(
|
||||
context: Context,
|
||||
|
@ -67,17 +64,3 @@ fun PostActions(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an [ApiResult.Failure.HttpFailure] to a scoped down error with a more useful user-facing
|
||||
* message.
|
||||
*/
|
||||
@Suppress("NOTHING_TO_INLINE") // We inline this to eliminate the stacktrace frame.
|
||||
inline fun <T : Any> ApiResult.Failure.HttpFailure<T>.toError(): Throwable =
|
||||
when (code) {
|
||||
HttpURLConnection.HTTP_NOT_FOUND -> IOException("Story was removed by moderator")
|
||||
HttpURLConnection.HTTP_INTERNAL_ERROR,
|
||||
HttpURLConnection.HTTP_BAD_GATEWAY,
|
||||
HttpURLConnection.HTTP_UNAVAILABLE -> IOException("It appears lobste.rs is currently down")
|
||||
else -> IOException("API returned an invalid response")
|
||||
}
|
||||
|
|
|
@ -29,8 +29,8 @@ import dev.msfjarvis.claw.android.paging.LobstersPagingSource
|
|||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.PAGE_SIZE
|
||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource.Companion.STARTING_PAGE_INDEX
|
||||
import dev.msfjarvis.claw.android.paging.SearchPagingSource
|
||||
import dev.msfjarvis.claw.android.ui.toError
|
||||
import dev.msfjarvis.claw.api.LobstersApi
|
||||
import dev.msfjarvis.claw.api.toError
|
||||
import dev.msfjarvis.claw.core.injection.IODispatcher
|
||||
import dev.msfjarvis.claw.core.injection.MainDispatcher
|
||||
import dev.msfjarvis.claw.model.Comment
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue