diff --git a/src/main/java/com/simprints/libsimprints/Identification.kt b/src/main/java/com/simprints/libsimprints/Identification.kt index dc81528..57df0ea 100644 --- a/src/main/java/com/simprints/libsimprints/Identification.kt +++ b/src/main/java/com/simprints/libsimprints/Identification.kt @@ -4,13 +4,6 @@ import android.os.Parcel import android.os.Parcelable import android.os.Parcelable.Creator -/** - * This constructor creates a new identification - * - * @param guid Global unique id of the verified person - * @param confidence An int containing the (matching) confidence - * @param tier The tier score derived from the confidence - */ @Deprecated("Use contracts.data.Identification instead") data class Identification( val guid: String, diff --git a/src/main/java/com/simprints/libsimprints/contracts/data/Enrolment.kt b/src/main/java/com/simprints/libsimprints/contracts/data/Enrolment.kt index 8f72fc7..75dffde 100644 --- a/src/main/java/com/simprints/libsimprints/contracts/data/Enrolment.kt +++ b/src/main/java/com/simprints/libsimprints/contracts/data/Enrolment.kt @@ -1,5 +1,10 @@ package com.simprints.libsimprints.contracts.data +/** + * This constructor creates a new enrolment result + * + * @param guid Global unique id of the new enrolment + */ data class Enrolment( val guid: String, ) { diff --git a/src/main/java/com/simprints/libsimprints/contracts/data/Identification.kt b/src/main/java/com/simprints/libsimprints/contracts/data/Identification.kt index 2eca397..b826f06 100644 --- a/src/main/java/com/simprints/libsimprints/contracts/data/Identification.kt +++ b/src/main/java/com/simprints/libsimprints/contracts/data/Identification.kt @@ -3,7 +3,7 @@ package com.simprints.libsimprints.contracts.data import org.json.JSONArray /** - * This constructor creates a new identification + * This constructor creates a new identification result * * @param guid Global unique id of the verified person * @param confidence An int containing the (matching) confidence diff --git a/src/main/java/com/simprints/libsimprints/contracts/data/JsonExt.kt b/src/main/java/com/simprints/libsimprints/contracts/data/JsonExt.kt index 8a00510..8ed7fc4 100644 --- a/src/main/java/com/simprints/libsimprints/contracts/data/JsonExt.kt +++ b/src/main/java/com/simprints/libsimprints/contracts/data/JsonExt.kt @@ -4,7 +4,7 @@ import org.json.JSONArray import org.json.JSONException import org.json.JSONObject -internal inline fun T.asJsonObject(crossinline block: (JSONObject) -> JSONObject): JSONObject = JSONObject().also { block(it) } +internal inline fun T.asJsonObject(crossinline block: (JSONObject) -> Unit): JSONObject = JSONObject().also { block(it) } internal inline fun fromJsonString( jsonString: String, diff --git a/src/main/java/com/simprints/libsimprints/contracts/data/RefusalForm.kt b/src/main/java/com/simprints/libsimprints/contracts/data/RefusalForm.kt index da02ee3..6a4e9eb 100644 --- a/src/main/java/com/simprints/libsimprints/contracts/data/RefusalForm.kt +++ b/src/main/java/com/simprints/libsimprints/contracts/data/RefusalForm.kt @@ -1,5 +1,11 @@ package com.simprints.libsimprints.contracts.data +/** + * This constructor creates a new refusal form response + * + * @param reason Refusal reason chosen by user out of the provided options + * @param extra Additional information provided by the user + */ data class RefusalForm( val reason: String, val extra: String, diff --git a/src/main/java/com/simprints/libsimprints/contracts/data/Verification.kt b/src/main/java/com/simprints/libsimprints/contracts/data/Verification.kt index 30016bf..f49681c 100644 --- a/src/main/java/com/simprints/libsimprints/contracts/data/Verification.kt +++ b/src/main/java/com/simprints/libsimprints/contracts/data/Verification.kt @@ -3,21 +3,24 @@ package com.simprints.libsimprints.contracts.data /** * This constructor creates a new identification * - * @param guid Global unique id of the verified person - * @param confidence An int containing the (matching) confidence + * @param guid Global unique id of the verified person + * @param confidence An int containing the (matching) confidence * @param confidenceBand Confidence qualifier based on the project's configuration + * @param isSuccess Whether the confidence is higher than threshold in the project's configuration if configured */ data class Verification( val guid: String, val confidence: Float, val confidenceBand: ConfidenceBand, - val isSuccess: Boolean, + val isSuccess: Boolean?, ) { fun toJson(): String = asJsonObject { it.put(KEY_GUID, guid) it.put(KEY_CONFIDENCE_BAND, confidenceBand.name) it.put(KEY_CONFIDENCE, confidence) - it.put(KEY_IS_SUCCESS, isSuccess) + if (isSuccess != null) { + it.put(KEY_IS_SUCCESS, isSuccess) + } }.toString() companion object { @@ -30,7 +33,13 @@ data class Verification( val guid = json.getString(KEY_GUID) val confidence = json.getDouble(KEY_CONFIDENCE).toFloat() val band = json.getString(KEY_CONFIDENCE_BAND).let { ConfidenceBand.valueOf(it) } - val isSuccess = json.getBoolean(KEY_IS_SUCCESS) + + // Success flag is only provided if threshold is enabled in project configuration + val isSuccess = if (!json.isNull(KEY_IS_SUCCESS)) { + json.getBoolean(KEY_IS_SUCCESS) + } else { + null + } Verification(guid, confidence, band, isSuccess) } diff --git a/src/test/java/com/simprints/libsimprints/contracts/data/VerificationTest.kt b/src/test/java/com/simprints/libsimprints/contracts/data/VerificationTest.kt index 016a0ff..2ca747e 100644 --- a/src/test/java/com/simprints/libsimprints/contracts/data/VerificationTest.kt +++ b/src/test/java/com/simprints/libsimprints/contracts/data/VerificationTest.kt @@ -14,4 +14,12 @@ class VerificationTest { Assert.assertEquals(expected, actual) } + + @Test + fun `test verification does not have isSuccess if null`() { + val expected = Verification("case-id", 42f, ConfidenceBand.HIGH, null) + val actual = Verification.fromJson(expected.toJson()) + + Assert.assertEquals(expected, actual) + } }