27 files changed
+399
-15
No files matched your search
@@ -26,10 +26,12 @@ import com.m57.hermescontrol.data.model.PluginsHubResponse
|
||||
import com.m57.hermescontrol.data.model.ProfileSoulResponse
|
||||
import com.m57.hermescontrol.data.model.ProfilesResponse
|
||||
import com.m57.hermescontrol.data.model.RawConfigResponse
|
||||
import com.m57.hermescontrol.data.model.SaveSkillContentRequest
|
||||
import com.m57.hermescontrol.data.model.SessionListResponse
|
||||
import com.m57.hermescontrol.data.model.SessionMessagesResponse
|
||||
import com.m57.hermescontrol.data.model.SetActiveProfileRequest
|
||||
import com.m57.hermescontrol.data.model.Skill
|
||||
import com.m57.hermescontrol.data.model.SkillContentResponse
|
||||
import com.m57.hermescontrol.data.model.StatusResponse
|
||||
import com.m57.hermescontrol.data.model.SystemStatsResponse
|
||||
import com.m57.hermescontrol.data.model.ToggleSkillRequest
|
||||
@@ -52,6 +54,17 @@ import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface HermesApiService {
|
||||
@GET("api/skills/{name}/content")
|
||||
suspend fun getSkillContent(
|
||||
@Path("name") name: String,
|
||||
): Response<SkillContentResponse>
|
||||
|
||||
@PUT("api/skills/{name}/content")
|
||||
suspend fun saveSkillContent(
|
||||
@Path("name") name: String,
|
||||
@Body body: SaveSkillContentRequest,
|
||||
): Response<Unit>
|
||||
|
||||
@GET("api/status")
|
||||
suspend fun getStatus(): Response<StatusResponse>
|
||||
|
||||
|
||||
@@ -4,19 +4,32 @@ import retrofit2.Response
|
||||
import java.io.IOException
|
||||
|
||||
sealed interface NetworkResult<out T> {
|
||||
data class Success<out T>(val data: T) : NetworkResult<T>
|
||||
data class Success<out T>(
|
||||
val data: T,
|
||||
) : NetworkResult<T>
|
||||
|
||||
data class Failure(val error: NetworkError) : NetworkResult<Nothing>
|
||||
data class Failure(
|
||||
val error: NetworkError,
|
||||
) : NetworkResult<Nothing>
|
||||
}
|
||||
|
||||
sealed interface NetworkError {
|
||||
val message: String
|
||||
|
||||
data class Http(val code: Int, override val message: String) : NetworkError
|
||||
data class Http(
|
||||
val code: Int,
|
||||
override val message: String,
|
||||
) : NetworkError
|
||||
|
||||
data class Connection(override val message: String, val cause: IOException) : NetworkError
|
||||
data class Connection(
|
||||
override val message: String,
|
||||
val cause: IOException,
|
||||
) : NetworkError
|
||||
|
||||
data class Unknown(override val message: String, val cause: Throwable) : NetworkError
|
||||
data class Unknown(
|
||||
override val message: String,
|
||||
val cause: Throwable,
|
||||
) : NetworkError
|
||||
}
|
||||
|
||||
fun mapHttpError(code: Int): NetworkError {
|
||||
|
||||
Reference in new issue
Block a user