Skip to content

Commit d122d35

Browse files
committed
Protocols issue_crendential with override emit_event to use LightWeightWebhook
Signed-off-by: Victor Lee <victorlee0505@gmail.com>
1 parent 02b44d1 commit d122d35

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

aries_cloudagent/protocols/issue_credential/v1_0/models/credential_exchange.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from .....indy.models.cred_precis import IndyCredInfo, IndyCredInfoSchema
1313
from .....indy.models.cred_request import IndyCredRequest, IndyCredRequestSchema
1414
from .....messaging.models.base_record import BaseExchangeRecord, BaseExchangeSchema
15+
from .....messaging.models.light_webhook import LightWeightWebhook
1516
from .....messaging.valid import INDY_CRED_DEF_ID, INDY_SCHEMA_ID, UUIDFour
1617
from .....storage.base import StorageError
1718

@@ -221,6 +222,33 @@ async def save_error_state(
221222
except StorageError:
222223
LOGGER.exception("Error saving credential exchange error state")
223224

225+
# Override
226+
async def emit_event(self, session: ProfileSession, payload: Any = None):
227+
"""
228+
Emit an event.
229+
230+
Args:
231+
session: The profile session to use
232+
payload: The event payload
233+
"""
234+
235+
if not self.RECORD_TOPIC:
236+
return
237+
238+
if self.state:
239+
topic = f"{self.EVENT_NAMESPACE}::{self.RECORD_TOPIC}::{self.state}"
240+
else:
241+
topic = f"{self.EVENT_NAMESPACE}::{self.RECORD_TOPIC}"
242+
243+
if not payload:
244+
payload = self.serialize()
245+
246+
if session.profile.settings.get("transport.light_weight_webhook"):
247+
payload = LightWeightWebhook(1, **self.__dict__)
248+
payload = payload.__dict__
249+
250+
await session.profile.notify(topic, payload)
251+
224252
@property
225253
def record_value(self) -> dict:
226254
"""Accessor for the JSON record value generated for this invitation."""

aries_cloudagent/protocols/issue_credential/v2_0/models/cred_ex_record.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from .....core.profile import ProfileSession
1010
from .....messaging.models.base_record import BaseExchangeRecord, BaseExchangeSchema
11+
from .....messaging.models.light_webhook import LightWeightWebhook
1112
from .....messaging.valid import UUIDFour
1213
from .....storage.base import StorageError
1314

@@ -181,6 +182,33 @@ async def save_error_state(
181182
except StorageError as err:
182183
LOGGER.exception(err)
183184

185+
# Override
186+
async def emit_event(self, session: ProfileSession, payload: Any = None):
187+
"""
188+
Emit an event.
189+
190+
Args:
191+
session: The profile session to use
192+
payload: The event payload
193+
"""
194+
195+
if not self.RECORD_TOPIC:
196+
return
197+
198+
if self.state:
199+
topic = f"{self.EVENT_NAMESPACE}::{self.RECORD_TOPIC}::{self.state}"
200+
else:
201+
topic = f"{self.EVENT_NAMESPACE}::{self.RECORD_TOPIC}"
202+
203+
if not payload:
204+
payload = self.serialize()
205+
206+
if session.profile.settings.get("transport.light_weight_webhook"):
207+
payload = LightWeightWebhook(2, **self.__dict__)
208+
payload = payload.__dict__
209+
210+
await session.profile.notify(topic, payload)
211+
184212
@property
185213
def record_value(self) -> Mapping:
186214
"""Accessor for the JSON record value generated for this credential exchange."""

0 commit comments

Comments
 (0)