From 2e75d5f48f26c0d337068f68bef91ff74ad75cd6 Mon Sep 17 00:00:00 2001 From: Akiff Manji Date: Thu, 21 Sep 2023 00:40:15 +0000 Subject: [PATCH] feat: use v2.0 for issuing credential Signed-off-by: Akiff Manji --- .../business/business_digital_credentials.py | 8 +++--- .../legal_api/services/digital_credentials.py | 28 +++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/legal-api/src/legal_api/resources/v2/business/business_digital_credentials.py b/legal-api/src/legal_api/resources/v2/business/business_digital_credentials.py index f9e1f4b875..690c687780 100644 --- a/legal-api/src/legal_api/resources/v2/business/business_digital_credentials.py +++ b/legal-api/src/legal_api/resources/v2/business/business_digital_credentials.py @@ -137,7 +137,7 @@ def send_credential(identifier, credential_type): issued_credential = DCIssuedCredential( dc_definition_id=definition.id, dc_connection_id=connection.id, - credential_exchange_id=response['credential_exchange_id'] + credential_exchange_id=response['cred_ex_id'] ) issued_credential.save() @@ -210,9 +210,9 @@ def webhook_notification(topic_name: str): connection.connection_state = json_input['state'] connection.is_active = True connection.save() - elif topic_name == 'issue_credential': - issued_credential = DCIssuedCredential.find_by_credential_exchange_id(json_input['credential_exchange_id']) - if issued_credential and json_input['state'] == 'credential_issued': + elif topic_name == 'issue_credential_v2_0': + issued_credential = DCIssuedCredential.find_by_credential_exchange_id(json_input['cred_ex_id']) + if issued_credential and json_input['state'] in ('credential-issued', 'done'): issued_credential.date_of_issue = datetime.utcnow() issued_credential.is_issued = True issued_credential.save() diff --git a/legal-api/src/legal_api/services/digital_credentials.py b/legal-api/src/legal_api/services/digital_credentials.py index 3b9968ddfa..06b50da732 100644 --- a/legal-api/src/legal_api/services/digital_credentials.py +++ b/legal-api/src/legal_api/services/digital_credentials.py @@ -40,8 +40,8 @@ class DigitalCredentialsService: 'business_type', 'given_names', ], - 'schema_name': 'digital_business_card', # do not change schema name. this is the name registered in aca-py agent - 'schema_version': '1.0.0' # if attributes changes update schema_version to re-register + 'schema_name': 'digital_business_card', # do not change schema name. this is the name registered in aca-py agent + 'schema_version': '1.0.0' # if attributes changes update schema_version to re-register } def __init__(self): @@ -176,22 +176,26 @@ def issue_credential(self, comment: str = '') -> Optional[dict]: """Send holder a credential, automating entire flow.""" try: - response = requests.post(self.api_url + '/issue-credential/send', + response = requests.post(self.api_url + '/issue-credential-2.0/send', headers=self._get_headers(), data=json.dumps({ - 'auto_remove': True, + 'auto_remove': 'true', 'comment': comment, 'connection_id': connection_id, - 'cred_def_id': definition.credential_definition_id, - 'credential_proposal': { - '@type': 'issue-credential/1.0/credential-preview', + 'credential_preview': { + '@type': 'issue-credential/2.0/credential-preview', 'attributes': data }, - 'issuer_did': self.public_issuer_did, - 'schema_id': definition.schema_id, - 'schema_issuer_did': self.public_schema_did, - 'schema_name': definition.schema_name, - 'schema_version': definition.schema_version, + 'filter': { + 'indy': { + 'cred_def_id': definition.credential_definition_id, + 'issuer_did': self.public_issuer_did, + 'schema_id': definition.schema_id, + 'schema_issuer_did': self.public_schema_did, + 'schema_name': definition.schema_name, + 'schema_version': definition.schema_version, + } + }, 'trace': True })) response.raise_for_status()