-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add consumer for tracking event emitted signal
- Loading branch information
Showing
2 changed files
with
38 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
""" | ||
This module contains various configuration settings via | ||
waffle switches for the Certificates app. | ||
""" | ||
|
||
from edx_toggles.toggles import SettingToggle, WaffleSwitch | ||
|
||
|
||
# .. toggle_name: SEND_TRACKING_EVENT_EMITTED_SIGNAL | ||
# .. toggle_implementation: SettingToggle | ||
# .. toggle_default: False | ||
# .. toggle_description: When True, the system will publish `TRACKING_EVENT_EMITTED` signals to the event bus. The | ||
# `TRACKING_EVENT_EMITTED` signal is emit when a tracking log is emitted. | ||
# .. toggle_use_cases: publish | ||
SEND_TRACKING_EVENT_EMITTED_SIGNAL = SettingToggle('SEND_TRACKING_EVENT_EMITTED_SIGNAL', default=False, module_name=__name__) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
from django.dispatch import receiver | ||
|
||
from openedx_events.analytics.signals import TRACKING_EVENT_EMITTED | ||
from openedx_events.event_bus import get_producer | ||
|
||
from event_routing_backends.config import SEND_TRACKING_EVENT_EMITTED_SIGNAL | ||
|
||
@receiver(TRACKING_EVENT_EMITTED) | ||
def listen_for_certificate_created_event(sender, signal, **kwargs): | ||
""" | ||
Publish `TRACKING_EVENT_EMITTED` events to the event bus. | ||
""" | ||
print("\n\n", "listen_for_certificate_created_event", "\n\n") | ||
print("\n\n", kwargs, "\n\n") | ||
|
||
if SEND_TRACKING_EVENT_EMITTED_SIGNAL.is_enabled(): | ||
get_producer().send( | ||
signal=TRACKING_EVENT_EMITTED, | ||
topic='analytics', | ||
event_key_field='tracking_log.name', | ||
event_data={'tracking_log': kwargs['tracking_log']}, | ||
event_metadata=kwargs['metadata'] | ||
) |