diff options
Diffstat (limited to 'shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiInfrastructureResponse.kt')
-rw-r--r-- | shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiInfrastructureResponse.kt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiInfrastructureResponse.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiInfrastructureResponse.kt new file mode 100644 index 0000000..bc0b4fb --- /dev/null +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/ApiInfrastructureResponse.kt @@ -0,0 +1,40 @@ +package mx.trackermap.TrackerMap.client.infrastructure + +enum class ResponseType { + Success, Informational, Redirection, ClientError, ServerError +} + +abstract class ApiInfrastructureResponse<T>(val responseType: ResponseType) { + abstract val statusCode: Int + abstract val headers: Map<String, List<String>> +} + +class Success<T>( + val data: T, + override val statusCode: Int = -1, + override val headers: Map<String, List<String>> = mapOf() +) : ApiInfrastructureResponse<T>(ResponseType.Success) + +class Informational<T>( + val statusText: String, + override val statusCode: Int = -1, + override val headers: Map<String, List<String>> = mapOf() +) : ApiInfrastructureResponse<T>(ResponseType.Informational) + +class Redirection<T>( + override val statusCode: Int = -1, + override val headers: Map<String, List<String>> = mapOf() +) : ApiInfrastructureResponse<T>(ResponseType.Redirection) + +class ClientError<T>( + val body: Any? = null, + override val statusCode: Int = -1, + override val headers: Map<String, List<String>> = mapOf() +) : ApiInfrastructureResponse<T>(ResponseType.ClientError) + +class ServerError<T>( + val message: String? = null, + val body: Any? = null, + override val statusCode: Int = -1, + override val headers: Map<String, List<String>> +) : ApiInfrastructureResponse<T>(ResponseType.ServerError)
\ No newline at end of file |