diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAlertScreenPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAlertScreenPayload.kt index 985fed35fe..2f59b85b35 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAlertScreenPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAlertScreenPayload.kt @@ -11,13 +11,11 @@ import com.simprints.infra.eventsync.event.remote.models.ApiAlertScreenPayload.A @Keep internal data class ApiAlertScreenPayload( override val startTime: ApiTimestamp, - override val version: Int, val alertType: ApiAlertScreenEventType, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: AlertScreenPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.alertType.fromDomainToApi(), ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthenticationPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthenticationPayload.kt index f7b29eb868..a2eeb2825b 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthenticationPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthenticationPayload.kt @@ -17,11 +17,10 @@ import com.simprints.infra.eventsync.event.remote.models.ApiAuthenticationPayloa @Keep internal data class ApiAuthenticationPayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val userInfo: ApiUserInfo, val result: ApiResult, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep data class ApiUserInfo(val projectId: String, val userId: String) { @@ -45,7 +44,6 @@ internal data class ApiAuthenticationPayload( constructor(domainPayload: AuthenticationPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), ApiUserInfo(domainPayload.userInfo), domainPayload.result.fromDomainToApi() diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthorizationPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthorizationPayload.kt index 8fc2782702..384eb77963 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthorizationPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiAuthorizationPayload.kt @@ -15,10 +15,9 @@ import com.simprints.infra.eventsync.event.remote.models.ApiAuthorizationPayload @JsonInclude(Include.NON_NULL) internal data class ApiAuthorizationPayload( override val startTime: ApiTimestamp, - override val version: Int, val result: ApiResult, val userInfo: ApiUserInfo?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep data class ApiUserInfo(val projectId: String, val userId: String) { @@ -35,7 +34,6 @@ internal data class ApiAuthorizationPayload( constructor(domainPayload: AuthorizationPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.result.fromDomainToApi(), domainPayload.userInfo?.let { ApiUserInfo(it) } ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCandidateReadPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCandidateReadPayload.kt index c40c502b0a..31fe8529b5 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCandidateReadPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCandidateReadPayload.kt @@ -14,12 +14,11 @@ import com.simprints.infra.eventsync.event.remote.models.ApiCandidateReadPayload @JsonInclude(Include.NON_NULL) internal data class ApiCandidateReadPayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val candidateId: String, val localResult: ApiLocalResult, val remoteResult: ApiRemoteResult?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep enum class ApiLocalResult { @@ -35,7 +34,6 @@ internal data class ApiCandidateReadPayload( constructor(domainPayload: CandidateReadPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), domainPayload.candidateId, domainPayload.localResult.fromDomainToApi(), diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCompletionCheckPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCompletionCheckPayload.kt index 09803881f9..49fbe52791 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCompletionCheckPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiCompletionCheckPayload.kt @@ -7,13 +7,11 @@ import com.simprints.infra.events.event.domain.models.CompletionCheckEvent.Compl @Keep internal data class ApiCompletionCheckPayload( override val startTime: ApiTimestamp, - override val version: Int, val completed: Boolean, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: CompletionCheckPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.completed, ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConnectivitySnapshotPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConnectivitySnapshotPayload.kt index ea4c7a8e3a..20512f30f6 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConnectivitySnapshotPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConnectivitySnapshotPayload.kt @@ -9,9 +9,8 @@ import com.simprints.infra.events.event.domain.models.ConnectivitySnapshotEvent. @Keep internal data class ApiConnectivitySnapshotPayload( override val startTime: ApiTimestamp, - override val version: Int, val connections: List, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep class ApiConnection(val type: String, val state: String) { @@ -22,7 +21,6 @@ internal data class ApiConnectivitySnapshotPayload( constructor(domainPayload: ConnectivitySnapshotPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.connections.map { ApiConnection(it) }, ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConsentPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConsentPayload.kt index 9304a8cc43..9f37be48f9 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConsentPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiConsentPayload.kt @@ -14,11 +14,10 @@ import com.simprints.infra.eventsync.event.remote.models.ApiConsentPayload.ApiTy @Keep internal data class ApiConsentPayload( override val startTime: ApiTimestamp, - override val version: Int, var endTime: ApiTimestamp?, val consentType: ApiType, var result: ApiResult, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep enum class ApiType { @@ -34,7 +33,6 @@ internal data class ApiConsentPayload( constructor(domainPayload: ConsentPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), domainPayload.consentType.fromDomainToApi(), domainPayload.result.fromDomainToApi() diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV1.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV1.kt index 4e46a9daf0..c881852729 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV1.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV1.kt @@ -7,13 +7,11 @@ import com.simprints.infra.events.event.domain.models.EnrolmentEventV1 @Keep internal data class ApiEnrolmentPayloadV1( override val startTime: ApiTimestamp, - override val version: Int, val personId: String, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EnrolmentEventV1.EnrolmentPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.personId ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV2.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV2.kt index 7e73de633e..754d448518 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV2.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEnrolmentPayloadV2.kt @@ -7,17 +7,15 @@ import com.simprints.infra.events.event.domain.models.EnrolmentEventV2 @Keep internal data class ApiEnrolmentPayloadV2( override val startTime: ApiTimestamp, - override val version: Int, val subjectId: String, val projectId: String, val moduleId: String, val attendantId: String, val personCreationEventId: String, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EnrolmentEventV2.EnrolmentPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.subjectId, domainPayload.projectId, domainPayload.moduleId.value, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEvent.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEvent.kt index 3272b61ba5..2fc5f70e14 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEvent.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEvent.kt @@ -9,6 +9,7 @@ import com.simprints.infra.events.event.domain.models.Event internal data class ApiEvent( val id: String, val type: ApiEventPayloadType, + val version: Int, val payload: ApiEventPayload, val tokenizedFields: List, ) @@ -16,13 +17,14 @@ internal data class ApiEvent( internal fun Event.fromDomainToApi(): ApiEvent { val tokenizedKeyTypes = getTokenizedFields().filter { it.value is TokenizableString.Tokenized }.keys.toList() - val payload = payload.fromDomainToApi() - val tokenizedFields = tokenizedKeyTypes.mapNotNull(payload::getTokenizedFieldJsonPath) + val apiPayload = payload.fromDomainToApi() + val tokenizedFields = tokenizedKeyTypes.mapNotNull(apiPayload::getTokenizedFieldJsonPath) return ApiEvent( id = id, type = type.fromDomainToApi(), - payload = payload, + version = payload.eventVersion, + payload = apiPayload, tokenizedFields = tokenizedFields ) } diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEventPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEventPayload.kt index 61cb1c1e30..593e9cb494 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEventPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiEventPayload.kt @@ -131,7 +131,6 @@ import com.simprints.infra.eventsync.event.remote.models.upsync.ApiEventUpSyncRe ) @Keep internal abstract class ApiEventPayload( - open val version: Int, open val startTime: ApiTimestamp, ) { diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCaptureBiometricsPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCaptureBiometricsPayload.kt index 8a19851bfc..2197a4cd27 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCaptureBiometricsPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCaptureBiometricsPayload.kt @@ -7,11 +7,10 @@ import com.simprints.core.domain.fingerprint.IFingerIdentifier @Keep internal data class ApiFingerprintCaptureBiometricsPayload( - override val version: Int, override val startTime: ApiTimestamp, val fingerprint: Fingerprint, val id: String, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep data class Fingerprint( @@ -30,7 +29,6 @@ internal data class ApiFingerprintCaptureBiometricsPayload( } constructor(domainPayload: FingerprintCaptureBiometricsEvent.FingerprintCaptureBiometricsPayload) : this( - domainPayload.eventVersion, domainPayload.createdAt.fromDomainToApi(), Fingerprint(domainPayload.fingerprint), domainPayload.id diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayload.kt index c3bb21434d..160f2277c0 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayload.kt @@ -14,13 +14,12 @@ import com.simprints.core.domain.fingerprint.IFingerIdentifier internal data class ApiFingerprintCapturePayload( val id: String, override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val qualityThreshold: Int, val finger: IFingerIdentifier, val result: ApiResult, val fingerprint: ApiFingerprint?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep data class ApiFingerprint( @@ -36,15 +35,15 @@ internal data class ApiFingerprintCapturePayload( ) } - constructor(domainPayload: FingerprintCapturePayload) : - this(domainPayload.id, - domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, - domainPayload.endedAt?.fromDomainToApi(), - domainPayload.qualityThreshold, - domainPayload.finger, - domainPayload.result.fromDomainToApi(), - domainPayload.fingerprint?.let { ApiFingerprint(it) }) + constructor(domainPayload: FingerprintCapturePayload) : this( + domainPayload.id, + domainPayload.createdAt.fromDomainToApi(), + domainPayload.endedAt?.fromDomainToApi(), + domainPayload.qualityThreshold, + domainPayload.finger, + domainPayload.result.fromDomainToApi(), + domainPayload.fingerprint?.let { ApiFingerprint(it) }, + ) @Keep enum class ApiResult { diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiGuidSelectionPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiGuidSelectionPayload.kt index ac4b46d28e..a63152bf1f 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiGuidSelectionPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiGuidSelectionPayload.kt @@ -7,13 +7,11 @@ import com.simprints.infra.events.event.domain.models.GuidSelectionEvent.GuidSel @Keep internal data class ApiGuidSelectionPayload( override val startTime: ApiTimestamp, - override val version: Int, val selectedId: String, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: GuidSelectionPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.selectedId, ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiIntentParsingPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiIntentParsingPayload.kt index b9c2438602..92c3eb9f63 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiIntentParsingPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiIntentParsingPayload.kt @@ -12,13 +12,11 @@ import com.simprints.infra.eventsync.event.remote.models.ApiIntentParsingPayload @Keep internal data class ApiIntentParsingPayload( override val startTime: ApiTimestamp, - override val version: Int, val integration: ApiIntegrationInfo, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: IntentParsingPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.integration.fromDomainToApi(), ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiInvalidIntentPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiInvalidIntentPayload.kt index 5767266c6d..4a2424b8d5 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiInvalidIntentPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiInvalidIntentPayload.kt @@ -10,14 +10,12 @@ import com.simprints.infra.events.event.domain.models.InvalidIntentEvent.Invalid @JsonInclude(Include.NON_NULL) internal data class ApiInvalidIntentPayload( override val startTime: ApiTimestamp, - override val version: Int, val action: String, val extras: Map, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: InvalidIntentPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.action, domainPayload.extras, ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayload.kt index 9e854e303c..620beeb5df 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayload.kt @@ -8,12 +8,11 @@ import com.simprints.infra.events.event.domain.models.OneToManyMatchEvent.OneToM @Keep internal data class ApiOneToManyMatchPayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val pool: ApiMatchPool, val matcher: String, val result: List?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload( startTime) { @Keep data class ApiMatchPool(val type: ApiMatchPoolType, val count: Int) { @@ -32,7 +31,6 @@ internal data class ApiOneToManyMatchPayload( constructor(domainPayload: OneToManyMatchPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), ApiMatchPool(domainPayload.pool), domainPayload.matcher, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToOneMatchPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToOneMatchPayload.kt index 12226ab3a6..8f9a1949b3 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToOneMatchPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToOneMatchPayload.kt @@ -10,17 +10,15 @@ import com.simprints.infra.events.event.domain.models.OneToOneMatchEvent.OneToOn @JsonInclude(Include.NON_NULL) internal data class ApiOneToOneMatchPayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val candidateId: String, val matcher: String, val result: ApiMatchEntry?, val fingerComparisonStrategy: ApiFingerComparisonStrategy?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: OneToOneMatchPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), domainPayload.candidateId, domainPayload.matcher, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiPersonCreationPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiPersonCreationPayload.kt index a7142a197e..81004972c9 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiPersonCreationPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiPersonCreationPayload.kt @@ -8,16 +8,14 @@ import com.simprints.infra.events.event.domain.models.PersonCreationEvent.Person @Keep internal data class ApiPersonCreationPayload( override val startTime: ApiTimestamp, - override val version: Int, val fingerprintCaptureIds: List?, val fingerprintReferenceId: String?, val faceCaptureIds: List?, val faceReferenceId: String?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: PersonCreationPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.fingerprintCaptureIds, domainPayload.fingerprintReferenceId, domainPayload.faceCaptureIds, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiRefusalPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiRefusalPayload.kt index b81f53fae2..e8a866a302 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiRefusalPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiRefusalPayload.kt @@ -16,11 +16,10 @@ import com.simprints.infra.eventsync.event.remote.models.ApiRefusalPayload.ApiAn @Keep internal data class ApiRefusalPayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val reason: ApiAnswer, val otherText: String, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep enum class ApiAnswer { @@ -37,7 +36,6 @@ internal data class ApiRefusalPayload( constructor(domainPayload: RefusalPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), domainPayload.reason.toApiRefusalEventAnswer(), domainPayload.otherText, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerConnectionPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerConnectionPayload.kt index f66bab3736..41e9193d92 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerConnectionPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerConnectionPayload.kt @@ -14,9 +14,8 @@ import com.simprints.infra.eventsync.event.remote.models.ApiScannerConnectionPay @JsonInclude(Include.NON_NULL) internal data class ApiScannerConnectionPayload( override val startTime: ApiTimestamp, - override val version: Int, val scannerInfo: ApiScannerInfo, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep @JsonInclude(Include.NON_NULL) @@ -29,7 +28,6 @@ internal data class ApiScannerConnectionPayload( constructor(domainPayload: ScannerConnectionPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiScannerInfo( domainPayload.scannerInfo.scannerId, domainPayload.scannerInfo.macAddress, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerFirmwareUpdatePayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerFirmwareUpdatePayload.kt index 7bb4fb4a2e..7108182957 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerFirmwareUpdatePayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiScannerFirmwareUpdatePayload.kt @@ -11,16 +11,14 @@ import com.simprints.infra.events.event.domain.models.ScannerFirmwareUpdateEvent @JsonInclude(Include.NON_NULL) internal data class ApiScannerFirmwareUpdatePayload( override val startTime: ApiTimestamp, - override val version: Int, val endTime: ApiTimestamp?, val chip: String, val targetAppVersion: String, val failureReason: String?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: ScannerFirmwareUpdatePayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.endedAt?.fromDomainToApi(), domainPayload.chip, domainPayload.targetAppVersion, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiSuspiciousIntentPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiSuspiciousIntentPayload.kt index dd390a862d..4843da2c80 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiSuspiciousIntentPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiSuspiciousIntentPayload.kt @@ -10,13 +10,11 @@ import com.simprints.infra.events.event.domain.models.SuspiciousIntentEvent.Susp @JsonInclude(Include.NON_NULL) internal data class ApiSuspiciousIntentPayload( override val startTime: ApiTimestamp, - override val version: Int, val unexpectedExtras: Map, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: SuspiciousIntentPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.unexpectedExtras, ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiVero2InfoSnapshotPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiVero2InfoSnapshotPayload.kt index 183b8b9847..975ff90a75 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiVero2InfoSnapshotPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/ApiVero2InfoSnapshotPayload.kt @@ -28,19 +28,16 @@ import com.simprints.infra.events.event.domain.models.Vero2InfoSnapshotEvent.Ver @Keep internal sealed class ApiVero2InfoSnapshotPayload( override val startTime: ApiTimestamp, - override val version: Int, open val scannerVersion: ApiVero2Version, open val battery: ApiBatteryInfo -): ApiEventPayload(version, startTime) { +): ApiEventPayload(startTime) { data class ApiVero2InfoSnapshotPayloadForNewApi( override val startTime: ApiTimestamp, - override val version: Int, override val scannerVersion: ApiVero2Version, override val battery: ApiBatteryInfo ): ApiVero2InfoSnapshotPayload( startTime, - version, scannerVersion, battery ) { @@ -51,12 +48,10 @@ internal sealed class ApiVero2InfoSnapshotPayload( @Deprecated(message = "used only for backwards compatibility") data class ApiVero2InfoSnapshotPayloadForOldApi( override val startTime: ApiTimestamp, - override val version: Int, override val scannerVersion: ApiVero2Version, override val battery: ApiBatteryInfo ): ApiVero2InfoSnapshotPayload( startTime, - version, scannerVersion, battery ) { @@ -140,7 +135,6 @@ internal fun toApiVero2InfoSnapshotPayload(domainPayload: Vero2InfoSnapshotPaylo is Vero2InfoSnapshotPayload.Vero2InfoSnapshotPayloadForNewApi -> { ApiVero2InfoSnapshotPayload.ApiVero2InfoSnapshotPayloadForNewApi( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.version.toApiVero2Version(), ApiVero2InfoSnapshotPayload.ApiBatteryInfo(domainPayload.battery) ) @@ -148,7 +142,6 @@ internal fun toApiVero2InfoSnapshotPayload(domainPayload: Vero2InfoSnapshotPaylo is Vero2InfoSnapshotPayload.Vero2InfoSnapshotPayloadForOldApi -> { ApiVero2InfoSnapshotPayload.ApiVero2InfoSnapshotPayloadForOldApi( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.version.toApiVero2Version(), ApiVero2InfoSnapshotPayload.ApiBatteryInfo(domainPayload.battery) ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callback/ApiCallbackPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callback/ApiCallbackPayload.kt index 8d75a3c514..217d57a1f7 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callback/ApiCallbackPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callback/ApiCallbackPayload.kt @@ -20,19 +20,16 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi @JsonInclude(Include.NON_NULL) internal data class ApiCallbackPayload( override val startTime: ApiTimestamp, - override val version: Int, val callback: ApiCallback, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EnrolmentCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiEnrolmentCallback(domainPayload.guid) ) constructor(domainPayload: IdentificationCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiIdentificationCallback( domainPayload.sessionId, domainPayload.scores.map { it.fromDomainToApi(domainPayload.eventVersion) }) @@ -40,25 +37,21 @@ internal data class ApiCallbackPayload( constructor(domainPayload: VerificationCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiVerificationCallback(domainPayload.score.fromDomainToApi(domainPayload.eventVersion)) ) constructor(domainPayload: ConfirmationCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiConfirmationCallback(domainPayload.identificationOutcome) ) constructor(domainPayload: ErrorCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiErrorCallback(domainPayload.reason.fromDomainToApi()) ) constructor(domainPayload: RefusalCallbackPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiRefusalCallback(domainPayload.reason, domainPayload.extra) ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutEvent.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutEvent.kt index 2f48aa5266..192d1b5a2b 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutEvent.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutEvent.kt @@ -17,13 +17,11 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi @JsonInclude(Include.NON_NULL) internal data class ApiCalloutPayload( override val startTime: ApiTimestamp, - override val version: Int, val callout: ApiCallout, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EnrolmentCalloutPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiEnrolmentCallout( domainPayload.projectId, domainPayload.userId.value, @@ -32,7 +30,6 @@ internal data class ApiCalloutPayload( constructor(domainPayload: IdentificationCalloutPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiIdentificationCallout( domainPayload.projectId, domainPayload.userId.value, @@ -41,7 +38,6 @@ internal data class ApiCalloutPayload( constructor(domainPayload: VerificationCalloutPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiVerificationCallout( domainPayload.projectId, domainPayload.userId.value, @@ -51,14 +47,12 @@ internal data class ApiCalloutPayload( constructor(domainPayload: ConfirmationCalloutPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiConfirmationCallout( domainPayload.selectedGuid, domainPayload.sessionId)) constructor(domainPayload: EnrolmentLastBiometricsCalloutPayload) : this( domainPayload.createdAt.fromDomainToApi(), - domainPayload.eventVersion, ApiEnrolmentLastBiometricsCallout( domainPayload.projectId, domainPayload.userId.value, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/downsync/ApiEventDownSyncRequestPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/downsync/ApiEventDownSyncRequestPayload.kt index a4e4fe3d78..61fbfa4de4 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/downsync/ApiEventDownSyncRequestPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/downsync/ApiEventDownSyncRequestPayload.kt @@ -11,19 +11,17 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi internal data class ApiEventDownSyncRequestPayload( override val startTime: ApiTimestamp, val endTime: ApiTimestamp?, - override val version: Int, val requestId: String, val queryParameters: ApiQueryParameters, val responseStatus: Int?, val errorType: String?, val msToFirstResponseByte: Long?, val eventsRead: Int?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EventDownSyncRequestEvent.EventDownSyncRequestPayload) : this( domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.requestId, ApiQueryParameters( domainPayload.queryParameters.moduleId, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureBiometricsPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureBiometricsPayload.kt index 758204b28d..bfba79647a 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureBiometricsPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureBiometricsPayload.kt @@ -9,11 +9,10 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi @Keep internal class ApiFaceCaptureBiometricsPayload( - override val version: Int, override val startTime: ApiTimestamp, val id: String, val face: Face?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { @Keep data class Face( @@ -34,7 +33,6 @@ internal class ApiFaceCaptureBiometricsPayload( } constructor(domainPayload: FaceCaptureBiometricsEvent.FaceCaptureBiometricsPayload) : this( - domainPayload.eventVersion, domainPayload.createdAt.fromDomainToApi(), domainPayload.id, Face(domainPayload.face) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureConfirmationPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureConfirmationPayload.kt index bbcd7e1251..9d247f15ea 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureConfirmationPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCaptureConfirmationPayload.kt @@ -17,14 +17,12 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi internal data class ApiFaceCaptureConfirmationPayload( override val startTime: ApiTimestamp, //Not added on API yet val endTime: ApiTimestamp?, - override val version: Int, val result: ApiResult, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: FaceCaptureConfirmationPayload) : this( domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.result.fromDomainToApi() ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayload.kt index 512ff6edf1..c195ed7fca 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayload.kt @@ -17,19 +17,17 @@ internal data class ApiFaceCapturePayload( val id: String, override val startTime: ApiTimestamp, val endTime: ApiTimestamp?, - override val version: Int, val attemptNb: Int, val qualityThreshold: Float, val result: ApiResult, val isFallback: Boolean, val face: ApiFace?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: FaceCapturePayload) : this( domainPayload.id, domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.attemptNb, domainPayload.qualityThreshold, domainPayload.result.fromDomainToApi(), diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceFallbackCapturePayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceFallbackCapturePayload.kt index 3c69a7a2cb..3a8398cdab 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceFallbackCapturePayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceFallbackCapturePayload.kt @@ -12,13 +12,11 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi internal data class ApiFaceFallbackCapturePayload( override val startTime: ApiTimestamp, //Not added on API yet val endTime: ApiTimestamp?, - override val version: Int, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: FaceFallbackCapturePayload) : this( domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion ) override fun getTokenizedFieldJsonPath(tokenKeyType: TokenKeyType): String? = diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceOnboardingCompletePayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceOnboardingCompletePayload.kt index 61aa1d0079..10fab139ea 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceOnboardingCompletePayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceOnboardingCompletePayload.kt @@ -11,13 +11,11 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi internal data class ApiFaceOnboardingCompletePayload( override val startTime: ApiTimestamp, //Not added on API yet val endTime: ApiTimestamp?, - override val version: Int, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: FaceOnboardingCompletePayload) : this( domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion ) override fun getTokenizedFieldJsonPath(tokenKeyType: TokenKeyType): String? = diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/upsync/ApiEventUpSyncRequestPayload.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/upsync/ApiEventUpSyncRequestPayload.kt index 90e8eaf975..911ac17f1a 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/upsync/ApiEventUpSyncRequestPayload.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/upsync/ApiEventUpSyncRequestPayload.kt @@ -11,17 +11,15 @@ import com.simprints.infra.eventsync.event.remote.models.fromDomainToApi internal data class ApiEventUpSyncRequestPayload( override val startTime: ApiTimestamp, val endTime: ApiTimestamp?, - override val version: Int, val requestId: String, val content: ApiUpSyncContent, val responseStatus: Int?, val errorType: String?, -) : ApiEventPayload(version, startTime) { +) : ApiEventPayload(startTime) { constructor(domainPayload: EventUpSyncRequestEvent.EventUpSyncRequestPayload) : this( domainPayload.createdAt.fromDomainToApi(), domainPayload.endedAt?.fromDomainToApi(), - domainPayload.eventVersion, domainPayload.requestId, ApiUpSyncContent( domainPayload.content.sessionCount, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTask.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTask.kt index 6445ef2d33..e0626b7906 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTask.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTask.kt @@ -176,20 +176,20 @@ internal class EventUpSyncTask @Inject constructor( .map { (scope, events) -> ApiEventScope.fromDomain(scope, events.orEmpty()) } val uploadedScopes = mutableListOf() - scopesToUpload.chunked(batchSize).forEach { scope -> + scopesToUpload.chunked(batchSize).forEach { scopes -> val requestStartTime = timeHelper.now() try { val result = eventRemoteDataSource.post( projectId, - ApiUploadEventsBody(sessions = scope) + scopes.asApiUploadEventsBody(eventScopeTypeToUpload) ) addRequestEvent( eventScope = eventScope, startTime = requestStartTime, result = result, - content = createUpSyncContentContent(scope.size), + content = createUpSyncContentContent(scopes.size), ) - uploadedScopes.addAll(scope.map { it.id }) + uploadedScopes.addAll(scopes.map { it.id }) } catch (ex: Exception) { handleFailedRequest(ex, eventScope, requestStartTime) } @@ -199,6 +199,12 @@ internal class EventUpSyncTask @Inject constructor( eventRepository.deleteEventScopes(uploadedScopes) } + private fun List.asApiUploadEventsBody(eventScopeTypeToUpload: EventScopeType) = when(eventScopeTypeToUpload) { + EventScopeType.SESSION -> ApiUploadEventsBody(sessions = this) + EventScopeType.DOWN_SYNC -> ApiUploadEventsBody(eventDownSyncs = this) + EventScopeType.UP_SYNC -> ApiUploadEventsBody(eventUpSyncs = this) + } + private fun Map?>.getCorruptedScopes() = filterValues { it == null }.keys diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/EventValidationUtils.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/EventValidationUtils.kt index 5b2c6c67ab..56daa058bf 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/EventValidationUtils.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/EventValidationUtils.kt @@ -22,10 +22,11 @@ private val fingerIdentifiers = listOf( "RIGHT_5TH_FINGER" ) -fun validateCommonParams(json: JSONObject, type: String) { +fun validateCommonParams(json: JSONObject, type: String, version: Int) { assertThat(json.getString("id")).isNotNull() assertThat(json.getString("type")).isEqualTo(type) - assertThat(json.length()).isEqualTo(4) + assertThat(json.getInt("version")).isEqualTo(version) + assertThat(json.length()).isEqualTo(5) } fun validateTimestamp(jsonObject: JSONObject) { @@ -34,19 +35,16 @@ fun validateTimestamp(jsonObject: JSONObject) { } fun validateCallbackV1EventApiModel(json: JSONObject, expectedVersion: Int) { - validateCommonParams(json, "Callback") + validateCommonParams(json, "Callback", expectedVersion) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(expectedVersion) validateTimestamp(getJSONObject("startTime")) verifyCallbackPayloadContent(expectedVersion) - assertThat(length()).isEqualTo(3) } } fun validateCallbackV2EventApiModel(json: JSONObject) { - validateCommonParams(json, "Callback") + validateCommonParams(json, "Callback", 3) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(3) validateTimestamp(getJSONObject("startTime")) verifyCallbackPayloadContent(3) } @@ -127,9 +125,8 @@ fun verifyCallbackErrorApiModel(json: JSONObject) { } fun validateCalloutEventApiModel(json: JSONObject) { - validateCommonParams(json, "Callout") + validateCommonParams(json, "Callout", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) with(getJSONObject("callout")) { when (ApiCalloutType.valueOf(getString("type"))) { @@ -142,7 +139,7 @@ fun validateCalloutEventApiModel(json: JSONObject) { ) } } - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } @@ -192,20 +189,18 @@ fun verifyCalloutConfirmationApiModel(json: JSONObject) { } fun validateAlertScreenEventApiModel(json: JSONObject) { - validateCommonParams(json, "AlertScreen") + validateCommonParams(json, "AlertScreen", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getString("alertType")).isIn(ApiAlertScreenEventType.values().valuesAsStrings()) - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateAuthenticationEventApiModel(json: JSONObject) { - validateCommonParams(json, "Authentication") + validateCommonParams(json, "Authentication", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) with(getJSONObject("userInfo")) { @@ -216,15 +211,14 @@ fun validateAuthenticationEventApiModel(json: JSONObject) { assertThat(getString("result")).isIn( ApiAuthenticationPayload.ApiResult.values().valuesAsStrings() ) - assertThat(length()).isEqualTo(5) + assertThat(length()).isEqualTo(4) } } fun validateAuthorizationEventApiModel(json: JSONObject) { - validateCommonParams(json, "Authorization") + validateCommonParams(json, "Authorization", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) with(getJSONObject("userInfo")) { assertThat(getString("projectId")).isNotEmpty() @@ -232,44 +226,41 @@ fun validateAuthorizationEventApiModel(json: JSONObject) { assertThat(length()).isEqualTo(2) } assertThat(getString("result")).isAnyOf("AUTHORIZED", "NOT_AUTHORIZED") - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateCandidateReadEventApiModel(json: JSONObject) { - validateCommonParams(json, "CandidateRead") + validateCommonParams(json, "CandidateRead", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("candidateId").isValidGuid()).isTrue() assertThat(getString("localResult")).isAnyOf("FOUND", "NOT_FOUND") if (has("remoteResult")) { assertThat(getString("remoteResult")).isAnyOf("FOUND", "NOT_FOUND") - assertThat(length()).isEqualTo(6) - } else { assertThat(length()).isEqualTo(5) + } else { + assertThat(length()).isEqualTo(4) } } } fun validateCompletionCheckEventApiModel(json: JSONObject) { - validateCommonParams(json, "CompletionCheck") + validateCommonParams(json, "CompletionCheck", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getBoolean("completed")).isNotNull() - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateConnectivitySnapshotEventApiModel(json: JSONObject) { - validateCommonParams(json, "ConnectivitySnapshot") + validateCommonParams(json, "ConnectivitySnapshot", 3) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(3) validateTimestamp(getJSONObject("startTime")) val connections = getJSONArray("connections") for (i in 0 until connections.length()) { @@ -278,64 +269,59 @@ fun validateConnectivitySnapshotEventApiModel(json: JSONObject) { assertThat(connJson.getString("state")).isNotEmpty() assertThat(connJson.length()).isEqualTo(2) } - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateConsentEventApiModel(json: JSONObject) { - validateCommonParams(json, "Consent") + validateCommonParams(json, "Consent", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("consentType")).isAnyOf("INDIVIDUAL", "PARENTAL") assertThat(getString("result")).isAnyOf("ACCEPTED", "DECLINED", "NO_RESPONSE") - assertThat(length()).isEqualTo(5) + assertThat(length()).isEqualTo(4) } } fun validateEnrolmentEventV1ApiModel(json: JSONObject) { - validateCommonParams(json, "Enrolment") + validateCommonParams(json, "Enrolment", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getString("personId").isValidGuid()).isTrue() - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateEnrolmentEventV2ApiModel(json: JSONObject) { - validateCommonParams(json, "Enrolment") + validateCommonParams(json, "Enrolment", 3) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(3) validateTimestamp(getJSONObject("startTime")) assertThat(getString("subjectId")).isNotNull() assertThat(getString("projectId")).isNotNull() assertThat(getString("moduleId")).isNotNull() assertThat(getString("attendantId")).isNotNull() assertThat(getString("personCreationEventId")).isNotNull() - assertThat(length()).isEqualTo(7) + assertThat(length()).isEqualTo(6) } } fun validateIntentParsingEventApiModel(json: JSONObject) { - validateCommonParams(json, "IntentParsing") + validateCommonParams(json, "IntentParsing", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getString("integration")).isIn(listOf("STANDARD", "ODK", "COMMCARE")) - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateFingerprintCaptureEventApiModel(json: JSONObject) { - validateCommonParams(json, "FingerprintCapture") + validateCommonParams(json, "FingerprintCapture", 4) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(4) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("id")).isNotNull() @@ -355,17 +341,16 @@ fun validateFingerprintCaptureEventApiModel(json: JSONObject) { assertThat(getString("format")).isIn(listOf("ISO_19794_2", "NEC_1")) assertThat(length()).isEqualTo(3) } - assertThat(length()).isEqualTo(8) + assertThat(length()).isEqualTo(7) } } fun validateGuidSelectionEventApiModel(json: JSONObject) { - validateCommonParams(json, "GuidSelection") + validateCommonParams(json, "GuidSelection", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getString("selectedId").isValidGuid()).isTrue() - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } @@ -376,10 +361,9 @@ fun validateMatchEntryApiModel(json: JSONObject) { } fun validateOneToManyMatchEventApiModel(json: JSONObject) { - validateCommonParams(json, "OneToManyMatch") + validateCommonParams(json, "OneToManyMatch", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("matcher")).isAnyOf("SIM_AFIS", "RANK_ONE") @@ -392,15 +376,14 @@ fun validateOneToManyMatchEventApiModel(json: JSONObject) { for (i in 0 until matchEntries.length()) { validateMatchEntryApiModel(matchEntries.getJSONObject(i)) } - assertThat(length()).isEqualTo(6) + assertThat(length()).isEqualTo(5) } } fun validateOneToOneMatchEventApiModel(json: JSONObject) { - validateCommonParams(json, "OneToOneMatch") + validateCommonParams(json, "OneToOneMatch", 3) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(3) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("candidateId").isValidGuid()).isTrue() @@ -411,14 +394,13 @@ fun validateOneToOneMatchEventApiModel(json: JSONObject) { with(getJSONObject("result")) { validateMatchEntryApiModel(this) } - assertThat(length()).isEqualTo(7) + assertThat(length()).isEqualTo(6) } } fun validatePersonCreationEvent(json: JSONObject) { - validateCommonParams(json, "PersonCreation") + validateCommonParams(json, "PersonCreation", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getString("fingerprintReferenceId")).isNotNull() val fingerprintCaptureIds = getJSONArray("fingerprintCaptureIds") @@ -431,27 +413,25 @@ fun validatePersonCreationEvent(json: JSONObject) { for (i in 0 until faceCaptureIds.length()) { assertThat(faceCaptureIds.getString(i).isValidGuid()).isTrue() } - assertThat(length()).isEqualTo(6) + assertThat(length()).isEqualTo(5) } } fun validateRefusalEventApiModel(json: JSONObject) { - validateCommonParams(json, "Refusal") + validateCommonParams(json, "Refusal", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("reason")).isIn(ApiRefusalPayload.ApiAnswer.values().valuesAsStrings()) assertThat(getString("otherText")).isNotNull() - assertThat(length()).isEqualTo(5) + assertThat(length()).isEqualTo(4) } } fun validateScannerConnectionEventApiModel(json: JSONObject) { - validateCommonParams(json, "ScannerConnection") + validateCommonParams(json, "ScannerConnection", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) with(getJSONObject("scannerInfo")) { assertThat(getString("scannerId")).isNotEmpty() @@ -460,15 +440,14 @@ fun validateScannerConnectionEventApiModel(json: JSONObject) { assertThat(getString("generation")).isAnyOf("VERO_2", "VERO_1") assertThat(length()).isEqualTo(4) } - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateVero2InfoSnapshotEventApiModel(json: JSONObject) { - validateCommonParams(json, "Vero2InfoSnapshot") + validateCommonParams(json, "Vero2InfoSnapshot", 3) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(3) validateTimestamp(getJSONObject("startTime")) with(getJSONObject("scannerVersion")) { @@ -488,88 +467,63 @@ fun validateVero2InfoSnapshotEventApiModel(json: JSONObject) { assertThat(length()).isEqualTo(4) } - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateScannerFirmwareUpdateEventApiModel(json: JSONObject) { - validateCommonParams(json, "ScannerFirmwareUpdate") + validateCommonParams(json, "ScannerFirmwareUpdate", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("chip")).isNotEmpty() assertThat(getString("targetAppVersion")).isNotEmpty() assertThat(getString("failureReason")).isNotEmpty() - assertThat(length()).isEqualTo(6) + assertThat(length()).isEqualTo(5) } } -fun validateDatabaseInfoApiModel(json: JSONObject) { - assertThat(json.getInt("recordCount")).isNotNull() - assertThat(json.getInt("sessionCount")).isNotNull() - assertThat(json.length()).isEqualTo(2) -} - -fun validateDeviceApiModel(json: JSONObject) { - assertThat(json.getString("androidSdkVersion")).isNotEmpty() - assertThat(json.getString("deviceModel")).isNotEmpty() - assertThat(json.getString("deviceId")).isNotEmpty() - assertThat(json.length()).isEqualTo(3) -} - -fun validateLocationApiModel(json: JSONObject) { - assertThat(json.getDouble("latitude")).isNotNull() - assertThat(json.getDouble("longitude")).isNotNull() - assertThat(json.length()).isEqualTo(2) -} - fun validateSuspiciousIntentEventApiModel(json: JSONObject) { - validateCommonParams(json, "SuspiciousIntent") + validateCommonParams(json, "SuspiciousIntent", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getJSONObject("unexpectedExtras").toString()).isNotNull() - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateInvalidEventApiModel(json: JSONObject) { - validateCommonParams(json, "InvalidIntent") + validateCommonParams(json, "InvalidIntent", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) assertThat(getJSONObject("extras").toString()).isNotNull() assertThat(getString("action")).isNotNull() - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateFaceOnboardingCompleteEventApiModel(json: JSONObject) { - validateCommonParams(json, "FaceOnboardingComplete") + validateCommonParams(json, "FaceOnboardingComplete", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateFaceFallbackCaptureEventApiModel(json: JSONObject) { - validateCommonParams(json, "FaceFallbackCapture") + validateCommonParams(json, "FaceFallbackCapture", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) - assertThat(length()).isEqualTo(3) + assertThat(length()).isEqualTo(2) } } fun validateFaceCaptureEventApiModel(json: JSONObject) { - validateCommonParams(json, "FaceCapture") + validateCommonParams(json, "FaceCapture", 4) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(4) assertThat(getString("id")).isNotNull() validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) @@ -595,43 +549,39 @@ fun validateFaceCaptureEventApiModel(json: JSONObject) { assertThat(length()).isEqualTo(4) } - assertThat(length()).isEqualTo(9) + assertThat(length()).isEqualTo(8) } } fun validateFaceCaptureConfirmationEventApiModel(json: JSONObject) { - validateCommonParams(json, "FaceCaptureConfirmation") + validateCommonParams(json, "FaceCaptureConfirmation", 2) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(2) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("result")).isIn(listOf("CONTINUE", "RECAPTURE")) - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateFaceCaptureBiometricsEventApiModel(json: JSONObject) { - validateCommonParams(json, "FaceCaptureBiometrics") + validateCommonParams(json, "FaceCaptureBiometrics", 1) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(1) validateTimestamp(getJSONObject("startTime")) - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateFingerprintCaptureBiometricsEventApiModel(json: JSONObject) { - validateCommonParams(json, "FingerprintCaptureBiometrics") + validateCommonParams(json, "FingerprintCaptureBiometrics", 1) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(1) validateTimestamp(getJSONObject("startTime")) - assertThat(length()).isEqualTo(4) + assertThat(length()).isEqualTo(3) } } fun validateDownSyncRequestEventApiModel(json: JSONObject) { - validateCommonParams(json, "EventDownSyncRequest") + validateCommonParams(json, "EventDownSyncRequest", 0) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(0) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("requestId")).isNotNull() @@ -644,9 +594,8 @@ fun validateDownSyncRequestEventApiModel(json: JSONObject) { } fun validateUpSyncRequestEventApiModel(json: JSONObject) { - validateCommonParams(json, "EventUpSyncRequest") + validateCommonParams(json, "EventUpSyncRequest", 0) with(json.getJSONObject("payload")) { - assertThat(getInt("version")).isEqualTo(0) validateTimestamp(getJSONObject("startTime")) validateTimestamp(getJSONObject("endTime")) assertThat(getString("requestId")).isNotNull() diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayloadTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayloadTest.kt index 3b12e34043..02772b6275 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayloadTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiFingerprintCapturePayloadTest.kt @@ -22,7 +22,6 @@ class ApiFingerprintCapturePayloadTest { val payload = ApiFingerprintCapturePayload( id = randomUUID(), startTime = ApiTimestamp(1), - version = 3, endTime = ApiTimestamp(1), qualityThreshold = 23, finger = IFingerIdentifier.LEFT_3RD_FINGER, @@ -33,7 +32,6 @@ class ApiFingerprintCapturePayloadTest { with(payload) { assertThat(id).isNotNull() assertThat(startTime).isEqualTo(ApiTimestamp(1),) - assertThat(version).isEqualTo(3) assertThat(endTime).isEqualTo(ApiTimestamp(1),) assertThat(qualityThreshold).isEqualTo(23) assertThat(finger).isEqualTo(IFingerIdentifier.LEFT_3RD_FINGER) diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayloadTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayloadTest.kt index 167e351783..bb457837dd 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayloadTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/ApiOneToManyMatchPayloadTest.kt @@ -12,7 +12,6 @@ class ApiOneToManyMatchPayloadTest { fun `when getTokenizedFieldJsonPath is invoked, null is returned`() { val payload = ApiOneToManyMatchPayload( startTime = ApiTimestamp(0L, false, 0L), - version = 0, endTime = ApiTimestamp(0L, false, 0L), pool = mockk(), matcher = "", diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayloadTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayloadTest.kt index 730e6528a7..4c077bd250 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayloadTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/event/remote/models/face/ApiFaceCapturePayloadTest.kt @@ -21,7 +21,6 @@ class ApiFaceCapturePayloadTest { id = randomUUID(), startTime = ApiTimestamp(1), endTime = ApiTimestamp(2), - version = 3, attemptNb = 2, qualityThreshold = 1.2f, result = ApiFaceCapturePayload.ApiResult.VALID, @@ -32,7 +31,6 @@ class ApiFaceCapturePayloadTest { assertThat(id).isNotNull() assertThat(startTime).isEqualTo(ApiTimestamp(1),) assertThat(endTime).isEqualTo(ApiTimestamp(2),) - assertThat(version).isEqualTo(3) assertThat(attemptNb).isEqualTo(2) assertThat(qualityThreshold).isEqualTo(1.2f) assertThat(result).isEqualTo(ApiFaceCapturePayload.ApiResult.VALID) diff --git a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTaskTest.kt b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTaskTest.kt index 8d51db2e87..d4e4e6632a 100644 --- a/infra/event-sync/src/test/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTaskTest.kt +++ b/infra/event-sync/src/test/java/com/simprints/infra/eventsync/sync/up/tasks/EventUpSyncTaskTest.kt @@ -143,6 +143,33 @@ internal class EventUpSyncTaskTest { coVerify(exactly = 2) { eventRemoteDataSource.post(any(), any()) } } + @Test + fun `upload out-of-session events in correct fields`() = runTest { + setUpSyncKind(UpSynchronizationConfiguration.UpSynchronizationKind.ALL) + every { synchronizationConfiguration.up.simprints.batchSizes } returns UpSynchronizationConfiguration.UpSyncBatchSizes( + 2, 2, 2 + ) + + coEvery { eventRepo.getClosedEventScopes(EventScopeType.SESSION) } returns emptyList() + coEvery { eventRepo.getClosedEventScopes(EventScopeType.DOWN_SYNC) } returns listOf( + createSessionScope(GUID1) + ) + coEvery { eventRepo.getClosedEventScopes(EventScopeType.UP_SYNC) } returns listOf( + createSessionScope(GUID2), + createSessionScope(GUID3) + ) + coEvery { + eventRepo.getEventsFromScope(any()) + } returns listOf(createEventWithSessionId(GUID1, GUID1)) + + eventUpSyncTask.upSync(operation, eventScope).toList() + + coVerify { + eventRemoteDataSource.post(any(), match { it.eventDownSyncs.size == 1}) + eventRemoteDataSource.post(any(), match { it.eventUpSyncs.size == 2}) + } + } + @Test fun `upload should not filter any session events on upload`() = runTest { setUpSyncKind(UpSynchronizationConfiguration.UpSynchronizationKind.ALL)