46 lines
2.3 KiB
Kotlin
46 lines
2.3 KiB
Kotlin
@file:JvmName("RestErrorMapper")
|
|
package org.moire.ultrasonic.subsonic
|
|
|
|
import android.content.Context
|
|
import org.moire.ultrasonic.R
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.Generic
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.IncompatibleClientProtocolVersion
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.IncompatibleServerProtocolVersion
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.RequestedDataWasNotFound
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.RequiredParamMissing
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.TokenAuthNotSupportedForLDAP
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.TrialPeriodIsOver
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.UserNotAuthorizedForOperation
|
|
import org.moire.ultrasonic.api.subsonic.SubsonicError.WrongUsernameOrPassword
|
|
import org.moire.ultrasonic.service.SubsonicRESTException
|
|
|
|
/**
|
|
* Extension for [SubsonicRESTException] that returns localized error string, that can used to
|
|
* display error reason for user.
|
|
*/
|
|
fun SubsonicRESTException.getLocalizedErrorMessage(context: Context): String =
|
|
when (error) {
|
|
is Generic -> {
|
|
val message = error.message
|
|
val errorMessage = if (message == "") {
|
|
context.getString(R.string.api_subsonic_generic_no_message)
|
|
} else {
|
|
message
|
|
}
|
|
context.getString(R.string.api_subsonic_generic, errorMessage)
|
|
}
|
|
RequiredParamMissing -> context.getString(R.string.api_subsonic_param_missing)
|
|
IncompatibleClientProtocolVersion ->
|
|
context.getString(R.string.api_subsonic_upgrade_client)
|
|
IncompatibleServerProtocolVersion ->
|
|
context.getString(R.string.api_subsonic_upgrade_server)
|
|
WrongUsernameOrPassword -> context.getString(R.string.api_subsonic_not_authenticated)
|
|
TokenAuthNotSupportedForLDAP ->
|
|
context.getString(R.string.api_subsonic_token_auth_not_supported_for_ldap)
|
|
UserNotAuthorizedForOperation ->
|
|
context.getString(R.string.api_subsonic_not_authorized)
|
|
TrialPeriodIsOver -> context.getString(R.string.api_subsonic_trial_period_is_over)
|
|
RequestedDataWasNotFound ->
|
|
context.getString(R.string.api_subsonic_requested_data_was_not_found)
|
|
}
|