Skip to content

Commit 887899b

Browse files
Refactor to patch issue-credential protocol
Signed-off-by: George J Padayatti <[email protected]>
1 parent 7d879d7 commit 887899b

33 files changed

+3314
-449
lines changed

mydata_did/__init__.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
import os
2-
import logging
3-
41
from aries_cloudagent.config.injection_context import InjectionContext
52
from aries_cloudagent.config.provider import ClassProvider
63
from aries_cloudagent.core.protocol_registry import ProtocolRegistry
4+
from aries_cloudagent.core.plugin_registry import PluginRegistry
75

86
from .v1_0.message_types import MESSAGE_TYPES
9-
from .dispatcher import Dispatcher
107
from .definition import versions
11-
8+
from .patched_protocols.issue_credential.v1_0.message_types import MESSAGE_TYPES as ISSUE_CREDENTIAL_MESSAGE_TYPES
129

1310
async def setup(context: InjectionContext):
11+
# Register patched message types.
1412
protocol_registry: ProtocolRegistry = await context.inject(ProtocolRegistry)
1513
protocol_registry.register_message_types(MESSAGE_TYPES, version_definition=versions[0])
14+
protocol_registry.register_message_types(ISSUE_CREDENTIAL_MESSAGE_TYPES, version_definition=versions[0])
1615

17-
dispatcher = Dispatcher(context)
18-
context.injector.bind_instance(Dispatcher, dispatcher)
16+
# Register patched protocol plugins
17+
plugin_registry: PluginRegistry = await context.inject(PluginRegistry)
18+
plugin_registry.register_plugin("mydata_did.patched_protocols.issue_credential.v1_0")
1919

20-
print(context)
20+
# Unregister superseded protocols
21+
plugin_registry._plugins.pop("aries_cloudagent.protocols.issue_credential")

mydata_did/dispatcher.py

Lines changed: 0 additions & 307 deletions
This file was deleted.

mydata_did/patched_protocols/__init__.py

Whitespace-only changes.

mydata_did/patched_protocols/issue_credential/__init__.py

Whitespace-only changes.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"""Version definitions for this protocol."""
2+
3+
versions = [
4+
{
5+
"major_version": 1,
6+
"minimum_minor_version": 0,
7+
"current_minor_version": 0,
8+
"path": "v1_0",
9+
}
10+
]

mydata_did/patched_protocols/issue_credential/v1_0/__init__.py

Whitespace-only changes.

mydata_did/patched_protocols/issue_credential/v1_0/handlers/__init__.py

Whitespace-only changes.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
"""Credential ack message handler."""
2+
3+
from aries_cloudagent.messaging.base_handler import (
4+
BaseHandler,
5+
BaseResponder,
6+
HandlerException,
7+
RequestContext,
8+
)
9+
10+
from ..manager import CredentialManager
11+
from ..messages.credential_ack import CredentialAck
12+
13+
from aries_cloudagent.utils.tracing import trace_event, get_timer
14+
15+
16+
class CredentialAckHandler(BaseHandler):
17+
"""Message handler class for credential acks."""
18+
19+
async def handle(self, context: RequestContext, responder: BaseResponder):
20+
"""
21+
Message handler logic for credential acks.
22+
23+
Args:
24+
context: request context
25+
responder: responder callback
26+
"""
27+
r_time = get_timer()
28+
29+
self._logger.debug("CredentialAckHandler called with context %s", context)
30+
assert isinstance(context.message, CredentialAck)
31+
self._logger.info(
32+
"Received credential ack message: %s",
33+
context.message.serialize(as_string=True),
34+
)
35+
36+
if not context.connection_ready:
37+
raise HandlerException("No connection established for credential ack")
38+
39+
credential_manager = CredentialManager(context)
40+
41+
await credential_manager.receive_credential_ack()
42+
43+
trace_event(
44+
context.settings,
45+
context.message,
46+
outcome="CredentialAckHandler.handle.END",
47+
perf_counter=r_time,
48+
)

0 commit comments

Comments
 (0)