Skip to content
Snippets Groups Projects
Unverified Commit fddcaeea authored by BMItter's avatar BMItter Committed by GitHub
Browse files

Vaccination Server - Retrofit interfaces & Module (EXPOSUREAPP-6854,...

Vaccination Server - Retrofit interfaces & Module  (EXPOSUREAPP-6854, EXPOSUREAPP-6856, EXPOSUREAPP-7129) (#3099)

* Create some classes

* Get vaccination urls from env json

* Implemented api for obtaining value sets

* improved package structure, merge adjustments

* Adjusted path

* Share cache so one can clean it

* Added certificate retrofit

* Correction

* satisfy CI

* clean import

* fix test

* Fix test #2

* Dont use retrofit cache for more control

* Revert "Dont use retrofit cache for more control"

This reverts commit 44fed1f6d5258c00f1a5db72a329cfb91b6c60fa.

* Renamed vaccination url, Adjusted test

* Update prod json

* Changed name

* Updated debug menu

* Added new optional api

* Update DebugOptionsFragmentViewModelTest.kt

Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
parent 93d14c47
No related branches found
No related tags found
No related merge requests found
Showing
with 118 additions and 15 deletions
......@@ -71,6 +71,8 @@ class DebugOptionsFragment : Fragment(R.layout.fragment_test_debugoptions), Auto
environmentCdnurlVerification.text = "Verification CDN:\n${state.urlVerification}"
environmentUrlDatadonation.text = "DataDonation:\n${state.urlDataDonation}"
environmentUrlLogUpload.text = "LogUpload:\n${state.urlLogUpload}"
environmentUrlVaccinationProof.text = "Vaccination Proof: \n${state.urlVaccinationProof}"
environmentCdnUrlVaccination.text = "Vaccination CDN: \n${state.urlVaccination}"
environmentPubkeyCrowdnotifier.text = "CrowdNotifierPubKey:\n${state.pubKeyCrowdNotifier}"
environmentPubkeyAppconfig.text = "AppConfigPubKey:\n${state.pubKeyAppConfig}"
}
......
......@@ -10,6 +10,8 @@ data class EnvironmentState(
val urlVerification: String,
val urlDataDonation: String,
val urlLogUpload: String,
val urlVaccinationProof: String,
val urlVaccination: String,
val pubKeyCrowdNotifier: String,
val pubKeyAppConfig: String,
) {
......@@ -22,6 +24,8 @@ data class EnvironmentState(
urlVerification = verificationCdnUrl,
urlDataDonation = dataDonationCdnUrl,
urlLogUpload = logUploadServerUrl,
urlVaccinationProof = vaccinationProofServerUrl,
urlVaccination = vaccinationCdnUrl,
pubKeyCrowdNotifier = crowdNotifierPublicKey,
pubKeyAppConfig = appConfigPublicKey,
)
......
......@@ -109,6 +109,22 @@
android:layout_marginTop="4dp"
tools:text="LogUpload: ?" />
<TextView
android:id="@+id/environment_url_vaccination_proof"
style="@style/TextAppearance.MaterialComponents.Caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
tools:text="VaccinationProof: ?" />
<TextView
android:id="@+id/environment_cdn_url_vaccination"
style="@style/TextAppearance.MaterialComponents.Caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
tools:text="Vaccination: ?" />
<TextView
android:id="@+id/environment_pubkey_appconfig"
style="@style/TextAppearance.MaterialComponents.Caption"
......
......@@ -5,6 +5,7 @@ import de.rki.coronawarnapp.environment.bugreporting.BugReportingServerModule
import de.rki.coronawarnapp.environment.datadonation.DataDonationCDNModule
import de.rki.coronawarnapp.environment.download.DownloadCDNModule
import de.rki.coronawarnapp.environment.submission.SubmissionCDNModule
import de.rki.coronawarnapp.environment.vaccination.VaccinationCertificateUrlModule
import de.rki.coronawarnapp.environment.verification.VerificationCDNModule
@Module(
......@@ -13,7 +14,8 @@ import de.rki.coronawarnapp.environment.verification.VerificationCDNModule
SubmissionCDNModule::class,
VerificationCDNModule::class,
DataDonationCDNModule::class,
BugReportingServerModule::class
BugReportingServerModule::class,
VaccinationCertificateUrlModule::class
]
)
class EnvironmentModule
......@@ -12,6 +12,8 @@ import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.LOG_UPLOAD
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.SAFETYNET_API_KEY
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.SUBMISSION
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.USE_EUR_KEY_PKGS
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VACCINATION_PROOF
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VACCINATION_VALUE
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VERIFICATION
import de.rki.coronawarnapp.environment.EnvironmentSetup.EnvKey.VERIFICATION_KEYS
import de.rki.coronawarnapp.environment.EnvironmentSetup.Type.Companion.toEnvironmentType
......@@ -36,6 +38,8 @@ class EnvironmentSetup @Inject constructor(
VERIFICATION_KEYS("PUB_KEYS_SIGNATURE_VERIFICATION"),
DATA_DONATION("DATA_DONATION_CDN_URL"),
LOG_UPLOAD("LOG_UPLOAD_SERVER_URL"),
VACCINATION_PROOF("VACCINATION_PROOF_SERVER_URL"),
VACCINATION_VALUE("VACCINATION_CDN_URL"),
SAFETYNET_API_KEY("SAFETYNET_API_KEY"),
CROWD_NOTIFIER_PUBLIC_KEY("CROWD_NOTIFIER_PUBLIC_KEY")
}
......@@ -135,6 +139,12 @@ class EnvironmentSetup @Inject constructor(
val logUploadServerUrl: String
get() = getEnvironmentValue(LOG_UPLOAD).asString
val vaccinationProofServerUrl: String
get() = getEnvironmentValue(VACCINATION_PROOF).asString
val vaccinationCdnUrl: String
get() = getEnvironmentValue(VACCINATION_VALUE).asString
companion object {
private const val PKEY_CURRENT_ENVINROMENT = "environment.current"
}
......
package de.rki.coronawarnapp.environment.vaccination
import javax.inject.Qualifier
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class VaccinationCertificateCDNUrl
package de.rki.coronawarnapp.environment.vaccination
import javax.inject.Qualifier
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class VaccinationCertificateProofServerUrl
package de.rki.coronawarnapp.environment.vaccination
import dagger.Module
import dagger.Provides
import dagger.Reusable
import de.rki.coronawarnapp.environment.BaseEnvironmentModule
import de.rki.coronawarnapp.environment.EnvironmentSetup
@Module
class VaccinationCertificateUrlModule : BaseEnvironmentModule() {
@Reusable
@VaccinationCertificateProofServerUrl
@Provides
fun provideVaccinationProofUrl(environmentSetup: EnvironmentSetup): String =
requireValidUrl(environmentSetup.vaccinationProofServerUrl)
@Reusable
@VaccinationCertificateCDNUrl
@Provides
fun provideVaccinationValueSetUrl(environmentSetup: EnvironmentSetup): String =
requireValidUrl(environmentSetup.vaccinationCdnUrl)
}
package de.rki.coronawarnapp.vaccination.core
import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData
import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet
import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet
import org.joda.time.LocalDate
data class VaccinatedPerson(
......
package de.rki.coronawarnapp.vaccination.core
import dagger.Module
import de.rki.coronawarnapp.vaccination.core.server.VaccinationServerModule
@Module
class VaccinationModule
@Module(
includes = [
VaccinationServerModule::class
]
)
abstract class VaccinationModule
......@@ -17,7 +17,8 @@ import de.rki.coronawarnapp.vaccination.core.repository.storage.PersonData
import de.rki.coronawarnapp.vaccination.core.repository.storage.VaccinationStorage
import de.rki.coronawarnapp.vaccination.core.repository.storage.toProofContainer
import de.rki.coronawarnapp.vaccination.core.repository.storage.toVaccinationContainer
import de.rki.coronawarnapp.vaccination.core.server.VaccinationProofServer
import de.rki.coronawarnapp.vaccination.core.server.proof.VaccinationProofServer
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.SharingStarted
......
package de.rki.coronawarnapp.vaccination.core.repository
import de.rki.coronawarnapp.submission.server.SubmissionServer
import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet
import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf
import javax.inject.Inject
......
......@@ -5,11 +5,12 @@ import com.google.gson.annotations.SerializedName
import de.rki.coronawarnapp.vaccination.core.ProofCertificate
import de.rki.coronawarnapp.vaccination.core.VaccinatedPersonIdentifier
import de.rki.coronawarnapp.vaccination.core.personIdentifier
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateCOSEParser
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateData
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateResponse
import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateCOSEParser
import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateData
import de.rki.coronawarnapp.vaccination.core.server.proof.ProofCertificateResponse
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1
import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet
import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet
import okio.ByteString
import org.joda.time.Instant
import org.joda.time.LocalDate
......
......@@ -10,7 +10,8 @@ import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateCOSEPa
import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateData
import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateQRCode
import de.rki.coronawarnapp.vaccination.core.qrcode.VaccinationCertificateV1
import de.rki.coronawarnapp.vaccination.core.server.VaccinationValueSet
import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSet
import okio.ByteString
import org.joda.time.Instant
import org.joda.time.LocalDate
......
package de.rki.coronawarnapp.vaccination.core.server
import dagger.Module
import de.rki.coronawarnapp.vaccination.core.server.proof.VaccinationProofModule
import de.rki.coronawarnapp.vaccination.core.server.valueset.VaccinationValueSetModule
@Module(
includes = [
VaccinationValueSetModule::class,
VaccinationProofModule::class
]
)
abstract class VaccinationServerModule
package de.rki.coronawarnapp.vaccination.core.server
package de.rki.coronawarnapp.vaccination.core.server.proof
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1
import okio.ByteString
import org.joda.time.Instant
import org.joda.time.LocalDate
......
package de.rki.coronawarnapp.vaccination.core.server
package de.rki.coronawarnapp.vaccination.core.server.proof
import de.rki.coronawarnapp.vaccination.core.server.ProofCertificateV1
import org.joda.time.Instant
/**
......
package de.rki.coronawarnapp.vaccination.core.server
package de.rki.coronawarnapp.vaccination.core.server.proof
import de.rki.coronawarnapp.vaccination.core.VaccinationException
......
package de.rki.coronawarnapp.vaccination.core.server
package de.rki.coronawarnapp.vaccination.core.server.proof
import okio.ByteString
......
package de.rki.coronawarnapp.vaccination.core.server.proof
interface ProofCertificateServerData {
// Satisfy CI ¯\_(ツ)_/¯
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment