Skip to content

Commit

Permalink
feat(analytics): add started and finished eligibility event
Browse files Browse the repository at this point in the history
  • Loading branch information
lalver1 committed Sep 25, 2024
1 parent 0fa57c5 commit 802972c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
34 changes: 34 additions & 0 deletions benefits/in_person/analytics.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""
The in-person application: analytics implementation.
"""

from benefits.core import analytics as core, models
from benefits.eligibility.analytics import EligibilityEvent


class StartedEligibilityEvent(EligibilityEvent):
"""Analytics event representing the beginning of an eligibility verification check."""

def __init__(self, request, flow: models.EnrollmentFlow, enrollment_method: str):
super().__init__(request, "started eligibility", flow)
self.update_event_properties(enrollment_method=enrollment_method)
self.update_user_properties(enrollment_method=enrollment_method)


class FinishedEligibilityEvent(EligibilityEvent):
"""Analytics event representing the beginning of an eligibility verification check."""

def __init__(self, request, flow: models.EnrollmentFlow, enrollment_method: str):
super().__init__(request, "finished eligibility", flow)
self.update_event_properties(enrollment_method=enrollment_method)
self.update_user_properties(enrollment_method=enrollment_method)


def started_eligibility(request, flow: models.EnrollmentFlow, enrollment_method: str):
"""Send the "started eligibility" analytics event."""
core.send_event(StartedEligibilityEvent(request, flow, enrollment_method))


def finished_eligibility(request, flow: models.EnrollmentFlow, enrollment_method: str):
"""Send the "started eligibility" analytics event."""
core.send_event(FinishedEligibilityEvent(request, flow, enrollment_method))
4 changes: 4 additions & 0 deletions benefits/in_person/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

from benefits.routes import routes
from benefits.core import models, session
from benefits.in_person import analytics
from benefits.enrollment.enrollment import Status, request_card_tokenization_access, enroll

from benefits.in_person import forms
Expand All @@ -30,6 +31,7 @@ def eligibility(request):
flow_id = form.cleaned_data.get("flow")
flow = models.EnrollmentFlow.objects.get(id=flow_id)
session.update(request, flow=flow)
analytics.started_eligibility(request, flow, models.EnrollmentMethods.IN_PERSON)

in_person_enrollment = reverse(routes.IN_PERSON_ENROLLMENT)
response = redirect(in_person_enrollment)
Expand Down Expand Up @@ -105,6 +107,8 @@ def enrollment(request):
return redirect(routes.IN_PERSON_ENROLLMENT_REENROLLMENT_ERROR)
# GET enrollment index
else:
flow = session.flow(request)
analytics.finished_eligibility(request, flow, models.EnrollmentMethods.IN_PERSON)
agency = session.agency(request)

tokenize_retry_form = forms.CardTokenizeFailForm(routes.IN_PERSON_ENROLLMENT_RETRY, "form-card-tokenize-fail-retry")
Expand Down

0 comments on commit 802972c

Please sign in to comment.