From 7d45294d872ae221f7b375e374c9671d42053494 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Wed, 24 Aug 2022 14:13:08 -0400 Subject: [PATCH 1/2] fix: didcomm service accepts "accept" Signed-off-by: Daniel Bluhm --- pydid/service.py | 3 ++- tests/test_service.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pydid/service.py b/pydid/service.py index 9e128ac..27cd8cf 100644 --- a/pydid/service.py +++ b/pydid/service.py @@ -1,6 +1,6 @@ """DID Doc Service.""" -from typing import List, Union +from typing import List, Optional, Union from pydantic import Extra, AnyUrl from typing_extensions import Literal @@ -34,6 +34,7 @@ class Config: type: Literal["IndyAgent", "did-communication"] = "did-communication" recipient_keys: List[DIDUrl] routing_keys: List[DIDUrl] = [] + accept: Optional[List[str]] = None priority: int = 0 diff --git a/tests/test_service.py b/tests/test_service.py index 5bc4888..9372a55 100644 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -99,6 +99,7 @@ def test_serialization(service_raw): "recipientKeys": ["did:example:123#keys-1"], "routingKeys": [], "priority": 0, + "accept": ["didcomm/aip2;env=rfc19"] } DIDCOMM_SERVICES = [DIDCOMM_SERVICE0, DIDCOMM_SERVICE1, DIDCOMM_SERVICE2] From 078423b1f503884e9f5964e4732671d469b76963 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Wed, 24 Aug 2022 14:19:39 -0400 Subject: [PATCH 2/2] feat: service builder accept attribute Signed-off-by: Daniel Bluhm --- pydid/doc/builder.py | 10 ++++++---- tests/doc/test_doc.py | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pydid/doc/builder.py b/pydid/doc/builder.py index d5a2522..8503494 100644 --- a/pydid/doc/builder.py +++ b/pydid/doc/builder.py @@ -138,11 +138,12 @@ def add_didcomm( self, service_endpoint: str, recipient_keys: List[VerificationMethod], - routing_keys: List[VerificationMethod] = None, + routing_keys: Optional[List[VerificationMethod]] = None, *, - priority: int = None, - type_: str = None, - ident: Optional[str] = None + priority: Optional[int] = None, + type_: Optional[str] = None, + ident: Optional[str] = None, + accept: Optional[List[str]] = None ): """Add DIDComm Service.""" ident = ident or next(self._id_generator) @@ -155,6 +156,7 @@ def add_didcomm( routing_keys=[vmethod.id for vmethod in routing_keys], type=type_, priority=priority, + accept=accept, ) self.services.append(service) return service diff --git a/tests/doc/test_doc.py b/tests/doc/test_doc.py index 1766079..df8c117 100644 --- a/tests/doc/test_doc.py +++ b/tests/doc/test_doc.py @@ -419,6 +419,12 @@ def test_programmatic_construction_didcomm(): route = builder.verification_method.add( ExampleVerificationMethod, public_key_example="abcd" ) + builder.service.add_didcomm( + service_endpoint="https://example.com", + recipient_keys=[key], + routing_keys=[route], + accept=["didcomm/aip2;env=rfc19"], + ) builder.service.add_didcomm( service_endpoint="https://example.com", recipient_keys=[key], @@ -449,6 +455,15 @@ def test_programmatic_construction_didcomm(): "recipientKeys": ["did:example:123#key-0"], "routingKeys": ["did:example:123#key-1"], "priority": 0, + "accept": ["didcomm/aip2;env=rfc19"], + }, + { + "id": "did:example:123#service-1", + "type": "did-communication", + "serviceEndpoint": "https://example.com", + "recipientKeys": ["did:example:123#key-0"], + "routingKeys": ["did:example:123#key-1"], + "priority": 1, } ], }