From f3d510bf63e5f8fc762d5e3dbd896e7ed6957db7 Mon Sep 17 00:00:00 2001 From: Dimitris Zarras <138439389+dzarras@users.noreply.github.com> Date: Wed, 25 Sep 2024 10:45:43 +0300 Subject: [PATCH] Fully align SD-JWT-VC metadata (#215) --- .../port/input/GetCredentialIssuerMetaData.kt | 55 ++++++++----------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/src/main/kotlin/eu/europa/ec/eudi/pidissuer/port/input/GetCredentialIssuerMetaData.kt b/src/main/kotlin/eu/europa/ec/eudi/pidissuer/port/input/GetCredentialIssuerMetaData.kt index 61a3001..784d55f 100644 --- a/src/main/kotlin/eu/europa/ec/eudi/pidissuer/port/input/GetCredentialIssuerMetaData.kt +++ b/src/main/kotlin/eu/europa/ec/eudi/pidissuer/port/input/GetCredentialIssuerMetaData.kt @@ -164,8 +164,8 @@ private fun credentialMetaDataJson(d: CredentialConfiguration): JsonObject = bui } when (d) { is JwtVcJsonCredentialConfiguration -> TODO() - is MsoMdocCredentialConfiguration -> d.toTransferObject(false)(this) - is SdJwtVcCredentialConfiguration -> d.toTransferObject(false)(this) + is MsoMdocCredentialConfiguration -> d.toTransferObject()(this) + is SdJwtVcCredentialConfiguration -> d.toTransferObject()(this) } } @@ -195,48 +195,39 @@ private fun ProofType.toJsonObject(): JsonObject = } @OptIn(ExperimentalSerializationApi::class) -internal fun MsoMdocCredentialConfiguration.toTransferObject(isOffer: Boolean): JsonObjectBuilder.() -> Unit = { +internal fun MsoMdocCredentialConfiguration.toTransferObject(): JsonObjectBuilder.() -> Unit = { put("doctype", docType) - if (!isOffer) { - if (display.isNotEmpty()) { - putJsonArray("display") { - addAll(display.map { it.toTransferObject() }) - } + if (display.isNotEmpty()) { + putJsonArray("display") { + addAll(display.map { it.toTransferObject() }) } - if (policy != null) { - putJsonObject("policy") { - put("one_time_use", policy.oneTimeUse) - policy.batchSize?.let { put("batch_size", it) } - } + } + if (policy != null) { + putJsonObject("policy") { + put("one_time_use", policy.oneTimeUse) + policy.batchSize?.let { put("batch_size", it) } } + } - putJsonObject("claims") { - msoClaims.forEach { (nameSpace, attributes) -> - putJsonObject(nameSpace) { - attributes.forEach { attribute -> attribute.toTransferObject(this) } - } + putJsonObject("claims") { + msoClaims.forEach { (nameSpace, attributes) -> + putJsonObject(nameSpace) { + attributes.forEach { attribute -> attribute.toTransferObject(this) } } } } } @OptIn(ExperimentalSerializationApi::class) -internal fun SdJwtVcCredentialConfiguration.toTransferObject(isOffer: Boolean): JsonObjectBuilder.() -> Unit = { - put("vct", type.value) - if (!isOffer) { - if (display.isNotEmpty()) { - putJsonArray("display") { - addAll(display.map { it.toTransferObject() }) - } +internal fun SdJwtVcCredentialConfiguration.toTransferObject(): JsonObjectBuilder.() -> Unit = { + if (display.isNotEmpty()) { + putJsonArray("display") { + addAll(display.map { it.toTransferObject() }) } } - putJsonObject("credential_definition") { - put("type", type.value) - if (!isOffer) { - putJsonObject("claims") { - claims.forEach { attribute -> attribute.toTransferObject(this) } - } - } + put("vct", type.value) + putJsonObject("claims") { + claims.forEach { attribute -> attribute.toTransferObject(this) } } }