@@ -32,15 +32,17 @@ data class VerificationResult(
3232 var isIssuedTimeCorrect : Boolean = false ,
3333 var isNotExpired : Boolean = false ,
3434 var rulesValidationFailed : Boolean = false ,
35+ var vaccinationVerification : VaccinationVerificationResult ? = null ,
3536 var testVerification : TestVerificationResult ? = null ,
3637 var recoveryVerification : RecoveryVerificationResult ? = null
3738) {
3839
3940 fun isValid (): Boolean {
41+ val isVaccinationValid = vaccinationVerification?.isVaccinationValid() ? : true
4042 val isTestValid = testVerification?.isTestValid() ? : true
41- val isRecoveryValid = recoveryVerification?.isRecoveryValid() ? : true ;
43+ val isRecoveryValid = recoveryVerification?.isRecoveryValid() ? : true
4244 return base45Decoded && zlibDecoded && coseVerified && cborDecoded && isSchemaValid && isTestValid &&
43- isIssuedTimeCorrect && isNotExpired && ! rulesValidationFailed && isRecoveryValid
45+ isIssuedTimeCorrect && isNotExpired && ! rulesValidationFailed && isRecoveryValid && isVaccinationValid
4446 }
4547
4648 /* *
@@ -73,6 +75,15 @@ data class VerificationResult(
7375 recoveryVerification!! .isNotValidSoFar
7476 }
7577
78+ /* *
79+ * Checks if vaccination date is valid.
80+ */
81+ fun isVaccinationDateInTheFuture (): Boolean = if (vaccinationVerification == null ) {
82+ false
83+ } else {
84+ ! vaccinationVerification!! .isVaccinationDateInThePast
85+ }
86+
7687 override fun toString (): String {
7788 return " VerificationResult: \n " +
7889 " base45Decoded: $base45Decoded \n " +
@@ -84,6 +95,10 @@ data class VerificationResult(
8495 }
8596}
8697
98+ data class VaccinationVerificationResult (val isVaccinationDateInThePast : Boolean ) {
99+ fun isVaccinationValid (): Boolean = isVaccinationDateInThePast
100+ }
101+
87102data class TestVerificationResult (val isTestResultNegative : Boolean , val isTestDateInThePast : Boolean ) {
88103 fun isTestValid (): Boolean = isTestResultNegative && isTestDateInThePast
89104}
0 commit comments