From 8fd7324b88953485e9d38712e6e54ecbcdcbd949 Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Tue, 17 Sep 2024 12:19:42 +0100 Subject: [PATCH] feat: Assign specific format if auto is assigned #2887 --- .../credential_subject_type_extension.dart | 30 ++++++++++++------- .../profile/models/profile_setting.dart | 27 +++++++++++++++++ 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/lib/app/shared/enum/type/credential_subject_type/credential_subject_type_extension.dart b/lib/app/shared/enum/type/credential_subject_type/credential_subject_type_extension.dart index 2302114cc..6aba11146 100644 --- a/lib/app/shared/enum/type/credential_subject_type/credential_subject_type_extension.dart +++ b/lib/app/shared/enum/type/credential_subject_type/credential_subject_type_extension.dart @@ -754,6 +754,16 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { final oidc4vcDraftType = profileSetting .selfSovereignIdentityOptions.customOidc4vcProfile.oidc4vciDraft; + final discoverCardsOptions = profileSetting.discoverCardsOptions; + + var format = VCFormatType.ldpVc.urlValue; + + if (vcFormatType == VCFormatType.auto && discoverCardsOptions != null) { + format = discoverCardsOptions.vcFormatTypeForAuto; + } else { + format = vcFormatType.urlValue; + } + switch (this) { case CredentialSubjectType.defiCompliance: image = ImageStrings.dummyDefiComplianceCard; @@ -793,7 +803,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.emailPassUrl}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}'; + '&format=$format'; whyGetThisCard = ResponseString.RESPONSE_STRING_emailPassWhyGetThisCard; expirationDateDetails = @@ -805,7 +815,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over13'; whyGetThisCard = ResponseString.RESPONSE_STRING_over13WhyGetThisCard; @@ -818,7 +828,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over15'; whyGetThisCard = ResponseString.RESPONSE_STRING_over15WhyGetThisCard; @@ -831,7 +841,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over18'; whyGetThisCard = ResponseString.RESPONSE_STRING_over18WhyGetThisCard; @@ -844,7 +854,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over21'; whyGetThisCard = ResponseString.RESPONSE_STRING_over18WhyGetThisCard; @@ -857,7 +867,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over50'; whyGetThisCard = ResponseString.RESPONSE_STRING_over18WhyGetThisCard; @@ -870,7 +880,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=over65'; whyGetThisCard = ResponseString.RESPONSE_STRING_over18WhyGetThisCard; @@ -916,7 +926,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=$type'; whyGetThisCard = @@ -963,7 +973,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.phonePassUrl}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}'; + '&format=$format'; whyGetThisCard = ResponseString.RESPONSE_STRING_phoneProofWhyGetThisCard; @@ -976,7 +986,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType { link = '${Urls.id360Url}' '?draft=${oidc4vcDraftType.numbering}' - '&format=${vcFormatType.urlValue}' + '&format=$format' '&type=liveness'; whyGetThisCard = diff --git a/lib/dashboard/profile/models/profile_setting.dart b/lib/dashboard/profile/models/profile_setting.dart index 28c0d8aef..5cf6b002c 100644 --- a/lib/dashboard/profile/models/profile_setting.dart +++ b/lib/dashboard/profile/models/profile_setting.dart @@ -315,6 +315,33 @@ class DiscoverCardsOptions extends Equatable { ); } + String get vcFormatTypeForAuto { + if (displayDefi || + displayEmailPass || + displayGender || + displayHumanity || + displayOver13 || + displayOver15 || + displayOver18 || + displayOver21 || + displayOver50 || + displayOver65 || + displayPhonePass || + displayVerifiableId) { + return VCFormatType.ldpVc.urlValue; + } else if (displayPhonePassJwt || + displayOver18Jwt || + displayEmailPassJwt || + displayVerifiableIdJwt || + displayHumanityJwt) { + return VCFormatType.jwtVcJson.urlValue; + } else if (displayVerifiableIdSdJwt) { + return VCFormatType.vcSdJWT.urlValue; + } + + return VCFormatType.ldpVc.urlValue; + } + @override List get props => [ displayDefi,