Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -711,9 +711,22 @@ class ProjectConfigSharedPrefsMigrationTest {
"{\"FaceQualityThreshold\":\"-1\"}",
)
private val JSON_FACE_CONFIGURATION_WITH_UNEXPECTED_FIELD =
JsonHelper.fromJson<Map<String, JsonElement>>(
"{\"FaceMatchThreshold\":30, \"FaceConfidenceThresholds\":\"{\\\"LOW\\\":\\\"1\\\",\\\"MEDIUM\\\":\\\"20\\\",\\\"HIGH\\\":\\\"100\\\"}\",\"FaceNbOfFramesCaptured\":\"2\",\"FaceQualityThreshold\":\"-1\",\"SaveFaceImages\":\"true\"}",
JsonHelper.json.decodeFromString<Map<String, JsonElement>>(
"""
{
"FaceMatchThreshold": 30,
"FaceConfidenceThresholds": {
"LOW": 1,
"MEDIUM": 20,
"HIGH": 100
},
"FaceNbOfFramesCaptured": 2,
"FaceQualityThreshold": -1,
"SaveFaceImages": true
}
""".trimIndent(),
)

private val PROTO_FACE_CONFIGURATION = ProtoFaceConfiguration
.newBuilder()
.addAllowedSdks(ProtoFaceConfiguration.ProtoBioSdk.RANK_ONE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.simprints.core.tools.json
import com.fasterxml.jackson.annotation.JsonInclude.Include
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.JavaType
import com.fasterxml.jackson.databind.Module
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
Expand Down Expand Up @@ -53,11 +52,6 @@ object JsonHelper {
return jackson.readValue(json, type)
}

inline fun <reified T> fromJson(
json: String,
type: JavaType,
): T = jackson.readValue(json, type)

inline fun <reified T> fromJson(json: String): T = jackson.readValue(json, T::class.java)

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
package com.simprints.core.tools.utils

import com.simprints.core.tools.json.JsonHelper
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.jsonPrimitive
import javax.inject.Inject

class ExtractCommCareCaseIdUseCase @Inject constructor() {
operator fun invoke(metadata: String?): String? = metadata?.takeUnless { it.isBlank() }?.let {
try {
JsonHelper.fromJson<Map<String, Any>>(it)[ARG_CASE_ID] as? String
JsonHelper.json
.decodeFromString<Map<String, JsonElement>>(it)[ARG_CASE_ID]
?.jsonPrimitive
?.takeIf { jsonPrimitive -> jsonPrimitive.isString }
?.content
} catch (_: Exception) {
null
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.simprints.core.tools.utils

import androidx.annotation.Keep
import kotlinx.serialization.Serializable

@Keep
interface SimNetworkUtils {
Expand All @@ -17,6 +18,7 @@ interface SimNetworkUtils {
}

@Keep
@Serializable
data class Connection(
val type: ConnectionType,
val state: ConnectionState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import com.simprints.core.domain.tokenization.asTokenizableRaw
import com.simprints.core.tools.json.JsonHelper.json
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import org.junit.Ignore
import org.junit.Test

class TokenizationSerializerTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,11 @@ import android.content.Context
import android.database.Cursor
import android.net.Uri
import androidx.core.net.toUri
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.module.SimpleModule
import com.simprints.core.AvailableProcessors
import com.simprints.core.DispatcherBG
import com.simprints.core.domain.common.Modality
import com.simprints.core.domain.reference.BiometricTemplate
import com.simprints.core.domain.reference.CandidateRecord
import com.simprints.core.domain.tokenization.TokenizableString
import com.simprints.core.domain.tokenization.serialization.TokenizationClassNameDeserializer
import com.simprints.core.domain.tokenization.serialization.TokenizationClassNameSerializer
import com.simprints.core.tools.json.JsonHelper
import com.simprints.core.tools.time.TimeHelper
import com.simprints.core.tools.utils.EncodingUtils
Expand All @@ -25,7 +20,6 @@ import com.simprints.infra.enrolment.records.repository.domain.models.BiometricD
import com.simprints.infra.enrolment.records.repository.domain.models.CandidateRecordBatch
import com.simprints.infra.enrolment.records.repository.domain.models.EnrolmentRecordQuery
import com.simprints.infra.enrolment.records.repository.usecases.CompareImplicitTokenizedStringsUseCase
import com.simprints.infra.events.event.cosync.CoSyncEnrolmentRecordCreationEventDeserializer
import com.simprints.infra.events.event.cosync.CoSyncEnrolmentRecordEvents
import com.simprints.infra.events.event.domain.models.EnrolmentRecordCreationEvent
import com.simprints.infra.events.event.domain.models.FaceReference
Expand Down Expand Up @@ -255,32 +249,13 @@ internal class CommCareCandidateRecordDataSource @Inject constructor(

private fun parseRecordEvents(subjectActions: String) = subjectActions.takeIf(String::isNotEmpty)?.let {
try {
jsonHelper.fromJson<CoSyncEnrolmentRecordEvents>(
json = it,
module = coSyncSerializationModule,
type = object : TypeReference<CoSyncEnrolmentRecordEvents>() {},
)
jsonHelper.json.decodeFromString<CoSyncEnrolmentRecordEvents>(it)
} catch (e: Exception) {
Simber.e("Error while parsing subjectActions", e)
null
}
}

private val coSyncSerializationModule = SimpleModule().apply {
addSerializer(
TokenizableString::class.java,
TokenizationClassNameSerializer(),
)
addDeserializer(
TokenizableString::class.java,
TokenizationClassNameDeserializer(),
)
addDeserializer(
EnrolmentRecordCreationEvent::class.java,
CoSyncEnrolmentRecordCreationEventDeserializer(),
)
}

override suspend fun count(
query: EnrolmentRecordQuery,
dataSource: BiometricDataSource,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.simprints.infra.events.event.domain

import androidx.annotation.Keep
import kotlinx.serialization.Serializable

@Keep
@Serializable
data class EventCount(
val count: Int,
val isLowerBound: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ import com.simprints.core.domain.tokenization.TokenizableString
import com.simprints.core.tools.time.Timestamp
import com.simprints.infra.config.store.models.TokenKeyType
import com.simprints.infra.events.event.domain.models.EventType.AGE_GROUP_SELECTION
import com.simprints.infra.events.event.domain.models.EventType.Companion.AGE_GROUP_SELECTION_KEY
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.UUID

@Keep
@Serializable
@SerialName(AGE_GROUP_SELECTION_KEY)
data class AgeGroupSelectionEvent(
override val id: String = UUID.randomUUID().toString(),
override val payload: AgeGroupSelectionPayload,
Expand All @@ -30,6 +35,7 @@ data class AgeGroupSelectionEvent(
override fun setTokenizedFields(map: Map<TokenKeyType, TokenizableString>) = this // No tokenized fields

@Keep
@Serializable
data class AgeGroupSelectionPayload(
override val createdAt: Timestamp,
override val eventVersion: Int,
Expand All @@ -41,6 +47,7 @@ data class AgeGroupSelectionEvent(
}

@Keep
@Serializable
data class AgeGroup(
val startInclusive: Int,
val endExclusive: Int?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ import com.simprints.core.domain.tokenization.TokenizableString
import com.simprints.core.tools.time.Timestamp
import com.simprints.infra.config.store.models.TokenKeyType
import com.simprints.infra.events.event.domain.models.EventType.ALERT_SCREEN
import com.simprints.infra.events.event.domain.models.EventType.Companion.ALERT_SCREEN_KEY
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.UUID

@Keep
@Serializable
@SerialName(ALERT_SCREEN_KEY)
data class AlertScreenEvent(
override val id: String = UUID.randomUUID().toString(),
override val payload: AlertScreenPayload,
Expand All @@ -29,6 +34,7 @@ data class AlertScreenEvent(
override fun setTokenizedFields(map: Map<TokenKeyType, TokenizableString>) = this // No tokenized fields

@Keep
@Serializable
data class AlertScreenPayload(
override val createdAt: Timestamp,
override val eventVersion: Int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,14 @@ import com.simprints.infra.config.store.models.TokenKeyType
import com.simprints.infra.events.event.domain.models.AuthenticationEvent.AuthenticationPayload.Result
import com.simprints.infra.events.event.domain.models.AuthenticationEvent.AuthenticationPayload.UserInfo
import com.simprints.infra.events.event.domain.models.EventType.AUTHENTICATION
import com.simprints.infra.events.event.domain.models.EventType.Companion.AUTHENTICATION_KEY
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.UUID

@Keep
@Serializable
@SerialName(AUTHENTICATION_KEY)
data class AuthenticationEvent(
override val id: String = UUID.randomUUID().toString(),
override val payload: AuthenticationPayload,
Expand Down Expand Up @@ -39,6 +44,7 @@ data class AuthenticationEvent(
)

@Keep
@Serializable
data class AuthenticationPayload(
override val createdAt: Timestamp,
override val eventVersion: Int,
Expand All @@ -50,12 +56,14 @@ data class AuthenticationEvent(
override fun toSafeString(): String = "result: $result"

@Keep
@Serializable
data class UserInfo(
val projectId: String,
val userId: TokenizableString,
)

@Keep
@Serializable
enum class Result {
AUTHENTICATED,
BAD_CREDENTIALS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,14 @@ import com.simprints.infra.config.store.models.TokenKeyType
import com.simprints.infra.events.event.domain.models.AuthorizationEvent.AuthorizationPayload.AuthorizationResult
import com.simprints.infra.events.event.domain.models.AuthorizationEvent.AuthorizationPayload.UserInfo
import com.simprints.infra.events.event.domain.models.EventType.AUTHORIZATION
import com.simprints.infra.events.event.domain.models.EventType.Companion.AUTHORIZATION_KEY
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.UUID

@Keep
@Serializable
@SerialName(AUTHORIZATION_KEY)
data class AuthorizationEvent(
override val id: String = UUID.randomUUID().toString(),
override val payload: AuthorizationPayload,
Expand Down Expand Up @@ -42,6 +47,7 @@ data class AuthorizationEvent(
)

@Keep
@Serializable
data class AuthorizationPayload(
override val createdAt: Timestamp,
override val eventVersion: Int,
Expand All @@ -53,12 +59,14 @@ data class AuthorizationEvent(
override fun toSafeString(): String = "result: $result"

@Keep
@Serializable
enum class AuthorizationResult {
AUTHORIZED,
NOT_AUTHORIZED,
}

@Keep
@Serializable
data class UserInfo(
val projectId: String,
val userId: TokenizableString,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.simprints.infra.events.event.domain.models

import androidx.annotation.Keep
import kotlinx.serialization.Serializable

@Keep
@Serializable
enum class BiometricDataSource {
SIMPRINTS,
COMMCARE,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
package com.simprints.infra.events.event.domain.models

import androidx.annotation.Keep
import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import com.simprints.core.ExcludedFromGeneratedTestCoverageReports
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@ExcludedFromGeneratedTestCoverageReports("Domain model")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type")
@JsonSubTypes(
JsonSubTypes.Type(value = FaceReference::class, name = BiometricReferenceType.Companion.FACE_REFERENCE_KEY),
JsonSubTypes.Type(value = FingerprintReference::class, name = BiometricReferenceType.Companion.FINGERPRINT_REFERENCE_KEY),
)
@Keep
@Serializable
sealed class BiometricReference {
Expand Down
Loading