From 9a82b2ff881fd6fa61a9ae69618df09770f98533 Mon Sep 17 00:00:00 2001 From: Chilja Gossow <49635654+chiljamgossow@users.noreply.github.com> Date: Mon, 14 Jun 2021 19:46:28 +0200 Subject: [PATCH] Recovery json (EXPOSUREAPP-7676) (#3432) * interface recovery * interface recovery Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../recovery/core/RecoveryCertificate.kt | 6 ++++-- .../core/certificate/RecoveryDccV1.kt | 19 +++++++++++++++---- .../storage/RecoveryCertificateContainer.kt | 15 +++++++++------ 3 files changed, 28 insertions(+), 12 deletions(-) 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 4bc87fc83..d4fb3bc6b 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 93696ec4d..0038ed3a7 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 496cbf7c1..65209c919 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 -- GitLab