diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt index 4bc87fc83fd1b3e1b4e240d5876e605ea6ba59b3..d4fb3bc6bfc0c7a8218fb3495ade91f39fc1494c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt @@ -1,8 +1,10 @@ package de.rki.coronawarnapp.covidcertificate.recovery.core import de.rki.coronawarnapp.covidcertificate.common.certificate.CwaCovidCertificate +import org.joda.time.LocalDate interface RecoveryCertificate : CwaCovidCertificate { - - // TODO + val testedPositiveOn: LocalDate + val validFrom: LocalDate + val validUntil: LocalDate } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt index 93696ec4deea3cba7d622dd10bbee14fb69df45b..0038ed3a7b4b469c551b1a3876f4a603b952fb3b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt @@ -2,6 +2,7 @@ package de.rki.coronawarnapp.covidcertificate.recovery.core.certificate import com.google.gson.annotations.SerializedName import de.rki.coronawarnapp.covidcertificate.common.certificate.Dcc +import org.joda.time.LocalDate data class RecoveryDccV1( @SerializedName("ver") override val version: String, @@ -13,14 +14,24 @@ data class RecoveryDccV1( data class RecoveryCertificateData( // Disease or agent targeted, e.g. "tg": "840539006" @SerializedName("tg") override val targetId: String, - - // TODO - + // Date of First Positive NAA Test Result (required) e.g. "2021-04-21" + @SerializedName("fr") val fr: String, + // Certificate Valid From (required) e.g. "2021-05-01" + @SerializedName("df") val df: String, + // Certificate Valid Until (required) e.g. "2021-10-21" + @SerializedName("du") val du: String, // Country of Test (required) @SerializedName("co") override val certificateCountry: String, // Certificate Issuer, e.g. "is": "Ministry of Public Health, Welfare and Sport", @SerializedName("is") override val certificateIssuer: String, // Unique Certificate Identifier, e.g. "ci": "urn:uvci:01:NL:PlA8UWS60Z4RZXVALl6GAZ" @SerializedName("ci") override val uniqueCertificateIdentifier: String - ) : Payload + ) : Dcc.Payload { + val testedPositiveOn: LocalDate + get() = LocalDate.parse(fr) + val validFrom: LocalDate + get() = LocalDate.parse(df) + val validUntil: LocalDate + get() = LocalDate.parse(du) + } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt index 496cbf7c1c0ee6393b13e880e6437987f1103f2f..65209c91976a3d6f5c6145c0388bdbab92f2b8ae 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt @@ -31,7 +31,7 @@ data class RecoveryCertificateContainer( ): RecoveryCertificate { val header = certificateData.header val certificate = certificateData.certificate - val testCertificate = certificate.payload + val recoveryCertificate = certificate.payload return object : RecoveryCertificate { override val personIdentifier: CertificatePersonIdentifier @@ -39,25 +39,28 @@ data class RecoveryCertificateContainer( override val firstName: String? get() = certificate.nameData.firstName - override val lastName: String get() = certificate.nameData.lastName - override val fullName: String get() = certificate.nameData.fullName override val dateOfBirth: LocalDate get() = certificate.dateOfBirth - // TODO + override val testedPositiveOn: LocalDate + get() = recoveryCertificate.testedPositiveOn + override val validFrom: LocalDate + get() = recoveryCertificate.validFrom + override val validUntil: LocalDate + get() = recoveryCertificate.validUntil override val certificateIssuer: String get() = header.issuer override val certificateCountry: String - get() = Locale(userLocale.language, testCertificate.certificateCountry.uppercase()) + get() = Locale(userLocale.language, recoveryCertificate.certificateCountry.uppercase()) .getDisplayCountry(userLocale) override val certificateId: String - get() = testCertificate.uniqueCertificateIdentifier + get() = recoveryCertificate.uniqueCertificateIdentifier override val issuer: String get() = header.issuer