From 71cabce20191dc5b56279c00adcc7831fd89ca1f Mon Sep 17 00:00:00 2001 From: Julien Fraichot Date: Thu, 20 Apr 2023 11:48:32 -0300 Subject: [PATCH] feat(StatusList): support issuance of array credentialStatus property value --- cert_issuer/models/verifiable_credential.py | 30 ++++++++++++--------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/cert_issuer/models/verifiable_credential.py b/cert_issuer/models/verifiable_credential.py index 175bc3cc..b4bb4f5e 100644 --- a/cert_issuer/models/verifiable_credential.py +++ b/cert_issuer/models/verifiable_credential.py @@ -74,19 +74,23 @@ def validate_expiration_date (certificate_expiration_date): pass def validate_credential_status (certificate_credential_status): - try: - validate_url(certificate_credential_status['id']) - except KeyError: - raise ValueError('credentialStatus.id must be defined') - except ValueError: - raise ValueError('credentialStatus.id must be a valid URL') - - try: - isinstance(certificate_credential_status['type'], str) - except KeyError: - raise ValueError('credentialStatus.type must be defined') - except: - raise ValueError('credentialStatus.type must be a string') + if not isinstance(certificate_credential_status, list): + certificate_credential_status = [certificate_credential_status] + + for status in certificate_credential_status: + try: + validate_url(status['id']) + except KeyError: + raise ValueError('credentialStatus.id must be defined') + except ValueError: + raise ValueError('credentialStatus.id must be a valid URL') + + try: + isinstance(status['type'], str) + except KeyError: + raise ValueError('credentialStatus.type must be defined') + except: + raise ValueError('credentialStatus.type must be a string') pass def verify_credential(certificate_metadata):