mirror of
https://github.com/openflocon/Flocon.git
synced 2026-04-30 07:20:03 +00:00
Refact network model (#123)
* refact: [NETWORK] model with error * refact: [NETWORK] model with error * refact: [NETWORK] model with error * refact: [NETWORK] model with error * refact: [NETWORK] model with error * refact * merged with main --------- Co-authored-by: Florent Champigny <florent@bere.al>
This commit is contained in:
parent
db3c8a118c
commit
35d896af23
31 changed files with 571 additions and 504 deletions
|
|
@ -4,6 +4,7 @@ import kotlinx.serialization.json.Json
|
|||
|
||||
internal inline fun <reified T> Json.safeDecodeFromString(data: String): T? = try {
|
||||
decodeFromString(data)
|
||||
} catch (e: Throwable) {
|
||||
} catch (t: Throwable) {
|
||||
t.printStackTrace()
|
||||
null
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import io.github.openflocon.data.core.network.graphql.model.GraphQlRequestBody
|
|||
import io.github.openflocon.data.core.network.graphql.model.GraphQlResponseBody
|
||||
import io.github.openflocon.domain.network.models.BadQualityConfigDomainModel
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkCallDomainModel
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkRequestDomainModel
|
||||
import io.github.openflocon.domain.network.models.MockNetworkDomainModel
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlin.uuid.ExperimentalUuidApi
|
||||
|
|
@ -34,7 +33,8 @@ fun toDomain(decoded: FloconNetworkRequestDataModel): FloconNetworkCallDomainMod
|
|||
val graphQl = extractGraphQl(decoded)
|
||||
|
||||
val callId = decoded.floconCallId!!
|
||||
val networkRequest = FloconNetworkRequestDomainModel(
|
||||
|
||||
val request = FloconNetworkCallDomainModel.Request(
|
||||
url = decoded.url!!,
|
||||
startTime = decoded.startTime!!,
|
||||
method = decoded.method!!,
|
||||
|
|
@ -42,33 +42,21 @@ fun toDomain(decoded: FloconNetworkRequestDataModel): FloconNetworkCallDomainMod
|
|||
body = decoded.requestBody,
|
||||
byteSize = decoded.requestSize ?: 0L,
|
||||
isMocked = decoded.isMocked ?: false,
|
||||
specificInfos = when {
|
||||
graphQl != null -> FloconNetworkCallDomainModel.Request.SpecificInfos.GraphQl(
|
||||
query = graphQl.request.requestBody.query,
|
||||
operationType = graphQl.request.operationType,
|
||||
)
|
||||
decoded.floconNetworkType == "grpc" -> FloconNetworkCallDomainModel.Request.SpecificInfos.Grpc
|
||||
else -> FloconNetworkCallDomainModel.Request.SpecificInfos.Http
|
||||
}
|
||||
)
|
||||
|
||||
when {
|
||||
graphQl != null -> FloconNetworkCallDomainModel.GraphQl(
|
||||
callId = callId,
|
||||
request = FloconNetworkCallDomainModel.GraphQl.Request(
|
||||
query = graphQl.request.queryName ?: "anonymous",
|
||||
operationType = graphQl.request.operationType,
|
||||
networkRequest = networkRequest,
|
||||
),
|
||||
response = null,
|
||||
)
|
||||
|
||||
decoded.floconNetworkType == "grpc" -> FloconNetworkCallDomainModel.Grpc(
|
||||
callId = callId,
|
||||
networkRequest = networkRequest,
|
||||
response = null,
|
||||
)
|
||||
// decoded.floconNetworkType == "http"
|
||||
else -> {
|
||||
FloconNetworkCallDomainModel.Http(
|
||||
callId = callId,
|
||||
networkRequest = networkRequest,
|
||||
response = null,
|
||||
)
|
||||
}
|
||||
}
|
||||
FloconNetworkCallDomainModel(
|
||||
callId = callId,
|
||||
request = request,
|
||||
response = null, // for now it's null
|
||||
)
|
||||
} catch (t: Throwable) {
|
||||
t.printStackTrace()
|
||||
null
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.flocon.data.remote.network.models
|
||||
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkCallDomainModel
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkCallIdDomainModel
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkResponseDomainModel
|
||||
import io.github.openflocon.domain.network.models.FloconNetworkResponseOnlyDomainModel
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
@ -37,31 +37,41 @@ data class FloconNetworkResponseDataModel(
|
|||
val responseHeaders: Map<String, String>? = null,
|
||||
val responseSize: Long? = null,
|
||||
val responseGrpcStatus: String? = null,
|
||||
val responseError: String? = null,
|
||||
)
|
||||
|
||||
internal fun FloconNetworkResponseDataModel.toDomain(): FloconNetworkResponseOnlyDomainModel? {
|
||||
return try {
|
||||
val callId = floconCallId!!
|
||||
val networkResponse = FloconNetworkResponseDomainModel(
|
||||
durationMs = durationMs ?: 0.0,
|
||||
body = responseBody,
|
||||
byteSize = responseSize ?: 0L,
|
||||
headers = responseHeaders.orEmpty(),
|
||||
contentType = responseContentType,
|
||||
)
|
||||
when (floconNetworkType) {
|
||||
"grpc" -> FloconNetworkResponseOnlyDomainModel.Grpc(
|
||||
floconCallId = callId,
|
||||
networkResponse = networkResponse,
|
||||
grpcStatus = responseGrpcStatus!!,
|
||||
val durationMs = durationMs ?: 0.0
|
||||
|
||||
val response = if (responseError != null) {
|
||||
FloconNetworkCallDomainModel.Response.Failure(
|
||||
durationMs = durationMs,
|
||||
issue = responseError,
|
||||
)
|
||||
// otherwise tread like http
|
||||
else -> FloconNetworkResponseOnlyDomainModel.Http(
|
||||
floconCallId = callId,
|
||||
networkResponse = networkResponse,
|
||||
httpCode = responseHttpCode!!,
|
||||
} else {
|
||||
FloconNetworkCallDomainModel.Response.Success(
|
||||
durationMs = durationMs,
|
||||
contentType = responseContentType,
|
||||
body = responseBody,
|
||||
headers = responseHeaders.orEmpty(),
|
||||
byteSize = responseSize ?: 0L,
|
||||
specificInfos = when (floconNetworkType) {
|
||||
"grpc" -> FloconNetworkCallDomainModel.Response.Success.SpecificInfos.Grpc(
|
||||
grpcStatus = responseGrpcStatus!!,
|
||||
)
|
||||
// otherwise tread like http
|
||||
else -> FloconNetworkCallDomainModel.Response.Success.SpecificInfos.Http(
|
||||
httpCode = responseHttpCode!!,
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
FloconNetworkResponseOnlyDomainModel(
|
||||
floconCallId = callId,
|
||||
response = response,
|
||||
)
|
||||
} catch (t: Throwable) {
|
||||
t.printStackTrace()
|
||||
return null
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue