From 1c49c511085ebf8ed76fb7a130924c651b557e07 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 14 Jul 2025 09:53:22 +0300 Subject: [PATCH 1/2] =?UTF-8?q?[MS-1065]=20Adding=20'metadata'=20field=20t?= =?UTF-8?q?o=20the=20ConfirmationCalloutEventV3=CB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportActionRequestEventsUseCase.kt | 9 ++++++++- .../models/callout/ApiCalloutPayloadV3.kt | 1 + .../models/callout/ApiConfirmationCalloutV3.kt | 1 + .../events/sampledata/EventFactoryUtils.kt | 9 +++++---- .../callout/ConfirmationCalloutEventV3.kt | 11 ++++++++++- .../event/domain/models/EventPayloadTest.kt | 8 +++++++- .../callout/ConfirmationCalloutEventV3Test.kt | 17 +++++++++++++++-- 7 files changed, 47 insertions(+), 9 deletions(-) diff --git a/feature/login-check/src/main/java/com/simprints/feature/logincheck/usecases/ReportActionRequestEventsUseCase.kt b/feature/login-check/src/main/java/com/simprints/feature/logincheck/usecases/ReportActionRequestEventsUseCase.kt index 55411098f5..49b4794bf8 100644 --- a/feature/login-check/src/main/java/com/simprints/feature/logincheck/usecases/ReportActionRequestEventsUseCase.kt +++ b/feature/login-check/src/main/java/com/simprints/feature/logincheck/usecases/ReportActionRequestEventsUseCase.kt @@ -78,7 +78,14 @@ internal class ReportActionRequestEventsUseCase @Inject constructor( metadata, BiometricDataSource.fromString(biometricDataSource), ) - is ActionRequest.ConfirmIdentityActionRequest -> ConfirmationCalloutEventV3(startTime, projectId, selectedGuid, sessionId) + is ActionRequest.ConfirmIdentityActionRequest -> ConfirmationCalloutEventV3( + createdAt = startTime, + projectId = projectId, + selectedGuid = selectedGuid, + sessionId = sessionId, + metadata = metadata + ) + is ActionRequest.EnrolLastBiometricActionRequest -> EnrolmentLastBiometricsCalloutEventV3( startTime, projectId, diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutPayloadV3.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutPayloadV3.kt index 123a1586ce..1ea6c1e77c 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutPayloadV3.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiCalloutPayloadV3.kt @@ -58,6 +58,7 @@ internal data class ApiCalloutPayloadV3( ApiConfirmationCalloutV3( domainPayload.selectedGuid, domainPayload.sessionId, + domainPayload.metadata, ), ) diff --git a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiConfirmationCalloutV3.kt b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiConfirmationCalloutV3.kt index e462780288..b7d2286bde 100644 --- a/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiConfirmationCalloutV3.kt +++ b/infra/event-sync/src/main/java/com/simprints/infra/eventsync/event/remote/models/callout/ApiConfirmationCalloutV3.kt @@ -6,4 +6,5 @@ import androidx.annotation.Keep internal data class ApiConfirmationCalloutV3( val selectedGuid: String, val sessionId: String, + val metadata: String?, ) : ApiCallout(ApiCalloutType.Confirmation) diff --git a/infra/events/src/debug/java/com/simprints/infra/events/sampledata/EventFactoryUtils.kt b/infra/events/src/debug/java/com/simprints/infra/events/sampledata/EventFactoryUtils.kt index 7bf3c3694c..dbe66b2f69 100644 --- a/infra/events/src/debug/java/com/simprints/infra/events/sampledata/EventFactoryUtils.kt +++ b/infra/events/src/debug/java/com/simprints/infra/events/sampledata/EventFactoryUtils.kt @@ -194,10 +194,11 @@ fun createConfirmationCalloutEventV2() = ConfirmationCalloutEventV2( ) fun createConfirmationCalloutEventV3() = ConfirmationCalloutEventV3( - CREATED_AT, - DEFAULT_PROJECT_ID, - GUID1, - GUID2, + createdAt = CREATED_AT, + projectId = DEFAULT_PROJECT_ID, + selectedGuid = GUID1, + sessionId = GUID2, + metadata = DEFAULT_METADATA ) fun createEnrolmentCalloutEventV2(projectId: String = DEFAULT_PROJECT_ID) = EnrolmentCalloutEventV2( diff --git a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3.kt b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3.kt index 10fc9893ee..a25db43aeb 100644 --- a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3.kt +++ b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3.kt @@ -23,9 +23,17 @@ data class ConfirmationCalloutEventV3( projectId: String, selectedGuid: String, sessionId: String, + metadata: String?, ) : this( UUID.randomUUID().toString(), - ConfirmationCalloutPayload(createdAt, EVENT_VERSION, projectId, selectedGuid, sessionId), + ConfirmationCalloutPayload( + createdAt = createdAt, + eventVersion = EVENT_VERSION, + projectId = projectId, + selectedGuid = selectedGuid, + sessionId = sessionId, + metadata = metadata + ), CALLOUT_CONFIRMATION_V3, ) @@ -40,6 +48,7 @@ data class ConfirmationCalloutEventV3( val projectId: String, val selectedGuid: String, val sessionId: String, + val metadata: String?, override val endedAt: Timestamp? = null, override val type: EventType = CALLOUT_CONFIRMATION_V3, ) : EventPayload() { diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/EventPayloadTest.kt b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/EventPayloadTest.kt index 0692b9176a..953320fe68 100644 --- a/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/EventPayloadTest.kt +++ b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/EventPayloadTest.kt @@ -84,7 +84,13 @@ class EventPayloadTest { createdAt = CREATED_AT, score = CallbackComparisonScore(GUID1, 1, AppMatchConfidence.NONE), ), - ConfirmationCalloutEventV3(CREATED_AT, DEFAULT_PROJECT_ID, GUID1, GUID2), + ConfirmationCalloutEventV3( + createdAt = CREATED_AT, + projectId = DEFAULT_PROJECT_ID, + selectedGuid = GUID1, + sessionId = GUID2, + metadata = DEFAULT_METADATA + ), EnrolmentCalloutEventV3( createdAt = CREATED_AT, projectId = DEFAULT_PROJECT_ID, diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3Test.kt b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3Test.kt index b7c863b6df..93f7301355 100644 --- a/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3Test.kt +++ b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/callout/ConfirmationCalloutEventV3Test.kt @@ -5,6 +5,7 @@ import com.google.common.truth.Truth.assertThat import com.simprints.infra.events.event.domain.models.EventType.CALLOUT_CONFIRMATION_V3 import com.simprints.infra.events.event.domain.models.callout.ConfirmationCalloutEventV3.Companion.EVENT_VERSION import com.simprints.infra.events.sampledata.SampleDefaults.CREATED_AT +import com.simprints.infra.events.sampledata.SampleDefaults.DEFAULT_METADATA import com.simprints.infra.events.sampledata.SampleDefaults.DEFAULT_PROJECT_ID import com.simprints.infra.events.sampledata.SampleDefaults.GUID1 import com.simprints.infra.events.sampledata.SampleDefaults.GUID2 @@ -14,7 +15,13 @@ import org.junit.Test class ConfirmationCalloutEventV3Test { @Test fun create_ConfirmationCalloutEvent() { - val event = ConfirmationCalloutEventV3(CREATED_AT, DEFAULT_PROJECT_ID, GUID1, GUID2) + val event = ConfirmationCalloutEventV3( + createdAt = CREATED_AT, + projectId = DEFAULT_PROJECT_ID, + selectedGuid = GUID1, + sessionId = GUID2, + metadata = DEFAULT_METADATA + ) assertThat(event.id).isNotNull() assertThat(event.type).isEqualTo(CALLOUT_CONFIRMATION_V3) @@ -30,7 +37,13 @@ class ConfirmationCalloutEventV3Test { @Test fun getTokenizableFields_returnsEmptyMap() { - val event = ConfirmationCalloutEventV3(CREATED_AT, DEFAULT_PROJECT_ID, GUID1, GUID2) + val event = ConfirmationCalloutEventV3( + createdAt = CREATED_AT, + projectId = DEFAULT_PROJECT_ID, + selectedGuid = GUID1, + sessionId = GUID2, + metadata = DEFAULT_METADATA + ) assertThat(event.getTokenizableFields()).isEmpty() } From 607133053fc9755e13b98bf91fb3d4f14a4c4f5d Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 14 Jul 2025 12:01:22 +0300 Subject: [PATCH 2/2] =?UTF-8?q?[MS-1065]=20Fixing=20tests=CB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simprints/infra/eventsync/event/EventValidationUtils.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 69e6298a4e..e6ad96b5c8 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 @@ -266,7 +266,8 @@ fun verifyCalloutConfirmationApiModelV3(json: JSONObject) { assertThat(json.getString("type")).isEqualTo("Confirmation") assertThat(json.getString("selectedGuid")).isNotNull() assertThat(json.getString("sessionId")).isNotNull() - assertThat(json.length()).isEqualTo(3) + assertThat(json.getString("metadata")).isNotNull() + assertThat(json.length()).isEqualTo(4) } fun validateAlertScreenEventApiModel(json: JSONObject) {