refact: [CORE] add app instance to messages (#153)

* refact: [CORE] add app instance to messages

* upgraded schema

* old calls are displayed differently

---------

Co-authored-by: Florent Champigny <florent@bere.al>
This commit is contained in:
Florent CHAMPIGNY 2025-08-24 22:39:26 +02:00 committed by GitHub
parent 8025553c2f
commit bdea11321d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 2547 additions and 97 deletions

View file

@ -24,7 +24,8 @@ class DeviceRemoteDataSourceImpl(
it.map {
DeviceIdAndPackageNameDomainModel(
deviceId = it.deviceId,
packageName = it.packageName
packageName = it.packageName,
appInstance = it.appInstance,
)
}.toSet()
}.distinctUntilChanged()

View file

@ -11,4 +11,5 @@ internal fun FloconIncomingMessageDataModel.toDomain() = FloconIncomingMessageDo
method = method,
body = body,
plugin = plugin,
appInstance = appInstance,
)

View file

@ -9,9 +9,11 @@ import kotlinx.serialization.Serializable
data class FloconDeviceIdAndPackageNameDataModel(
val deviceId: DeviceId,
val packageName: String,
val appInstance: Long,
)
fun DeviceIdAndPackageNameDomainModel.toRemote() = FloconDeviceIdAndPackageNameDataModel(
deviceId = deviceId,
packageName = packageName,
appInstance = appInstance,
)

View file

@ -11,5 +11,5 @@ data class FloconIncomingMessageDataModel(
val method: String,
val appName: String,
val appPackageName: String,
val appInstance: String,
val appInstance: Long,
)

View file

@ -60,8 +60,8 @@ class NetworkRemoteDataSourceImpl(
)
}
override fun getRequestData(message: FloconIncomingMessageDomainModel): FloconNetworkCallDomainModel? = json.safeDecodeFromString<FloconNetworkRequestDataModel>(message.body)
?.let { com.flocon.data.remote.network.mapper.toDomain(it) }
override fun getRequestData(message: FloconIncomingMessageDomainModel,): FloconNetworkCallDomainModel? = json.safeDecodeFromString<FloconNetworkRequestDataModel>(message.body)
?.let { com.flocon.data.remote.network.mapper.toDomain(it, appInstance = message.appInstance) }
override fun getCallId(message: FloconIncomingMessageDomainModel): FloconNetworkCallIdDomainModel? = json.safeDecodeFromString<FloconNetworkCallIdDataModel>(message.body)
?.let(FloconNetworkCallIdDataModel::toDomain)

View file

@ -6,6 +6,7 @@ import com.flocon.data.remote.network.models.MockNetworkResponseDataModel
import io.github.openflocon.data.core.network.graphql.model.GraphQlExtracted
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.device.models.AppInstance
import io.github.openflocon.domain.network.models.BadQualityConfigDomainModel
import io.github.openflocon.domain.network.models.FloconNetworkCallDomainModel
import io.github.openflocon.domain.network.models.MockNetworkDomainModel
@ -40,7 +41,10 @@ fun toRemote(mock: MockNetworkDomainModel): MockNetworkResponseDataModel = MockN
)
@OptIn(ExperimentalUuidApi::class)
fun toDomain(decoded: FloconNetworkRequestDataModel): FloconNetworkCallDomainModel? = try {
fun toDomain(
decoded: FloconNetworkRequestDataModel,
appInstance: AppInstance,
): FloconNetworkCallDomainModel? = try {
val graphQl = extractGraphQl(decoded)
val callId = decoded.floconCallId!!
@ -65,6 +69,7 @@ fun toDomain(decoded: FloconNetworkRequestDataModel): FloconNetworkCallDomainMod
FloconNetworkCallDomainModel(
callId = callId,
appInstance = appInstance,
request = request,
response = null, // for now it's null
)

View file

@ -72,6 +72,7 @@ class ServerJvm : Server {
val device = FloconDeviceIdAndPackageNameDataModel(
deviceId = floconIncomingMessageDataModel.deviceId,
packageName = floconIncomingMessageDataModel.appPackageName,
appInstance = floconIncomingMessageDataModel.appInstance,
)
_activeSessions.update {
it + (device to currentSession)