Skip to content

Commit

Permalink
refactor: allow enrollment POST logic to show different templates
Browse files Browse the repository at this point in the history
  • Loading branch information
angela-tran committed Sep 4, 2024
1 parent c9281ed commit 1d62d10
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 14 deletions.
18 changes: 9 additions & 9 deletions benefits/enrollment/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def index(request):

# POST back after transit processor form, process card token
if request.method == "POST":
return enrollment_post(request, agency, flow)
return enrollment_post(request, agency, flow, success, reenrollment_error, system_error)

# GET enrollment index
else:
Expand All @@ -105,7 +105,7 @@ def index(request):
return TemplateResponse(request, flow.enrollment_index_template, context)


def enrollment_post(request, agency, flow):
def enrollment_post(request, agency, flow, success_function, reenrollment_error_function, system_error_function):
"""Processes the card token returned from transit processor form."""
form = forms.CardTokenizeSuccessForm(request.POST)
if not form.is_valid():
Expand Down Expand Up @@ -141,7 +141,7 @@ def enrollment_post(request, agency, flow):
client.link_concession_group_funding_source(
group_id=group_id, funding_source_id=funding_source.id, expiry=session.enrollment_expiry(request)
)
return success(request)
return success_function(request)
else: # already_enrolled
if group_funding_source.expiry_date is None:
# update expiration of existing enrollment, return success
Expand All @@ -150,7 +150,7 @@ def enrollment_post(request, agency, flow):
funding_source_id=funding_source.id,
expiry=session.enrollment_expiry(request),
)
return success(request)
return success_function(request)
else:
is_expired = _is_expired(group_funding_source.expiry_date)
is_within_reenrollment_window = _is_within_reenrollment_window(
Expand All @@ -164,19 +164,19 @@ def enrollment_post(request, agency, flow):
funding_source_id=funding_source.id,
expiry=session.enrollment_expiry(request),
)
return success(request)
return success_function(request)
else:
# re-enrollment error, return enrollment error with expiration and reenrollment_date
return reenrollment_error(request)
return reenrollment_error_function(request)
else: # eligibility does not support expiration
if not already_enrolled:
# enroll user with no expiration date, return success
client.link_concession_group_funding_source(group_id=group_id, funding_source_id=funding_source.id)
return success(request)
return success_function(request)
else: # already_enrolled
if group_funding_source.expiry_date is None:
# no action, return success
return success(request)
return success_function(request)
else:
# remove expiration date, return success
raise NotImplementedError("Removing expiration date is currently not supported")
Expand All @@ -186,7 +186,7 @@ def enrollment_post(request, agency, flow):
analytics.returned_error(request, str(e))
sentry_sdk.capture_exception(e)

return system_error(request)
return system_error_function(request)
else:
analytics.returned_error(request, str(e))
raise Exception(f"{e}: {e.response.json()}")
Expand Down
Empty file.
Empty file.
Empty file.
Empty file.
14 changes: 9 additions & 5 deletions benefits/in_person/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def enrollment(request):

# POST back after transit processor form, process card token
if request.method == "POST":
return enrollment_post(request, agency, flow)
return enrollment_post(request, agency, flow, success, reenrollment_error, system_error)
# GET enrollment page
else:
tokenize_retry_form = forms.CardTokenizeFailForm(routes.IN_PERSON_ENROLLMENT_RETRY, "form-card-tokenize-fail-retry")
Expand All @@ -47,12 +47,16 @@ def enrollment(request):


def reenrollment_error(request):
pass
return TemplateResponse(request, "in_person/enrollment/reenrollment_error.html")


def retry(request):
pass
return TemplateResponse(request, "in_person/enrollment/retry.html")


def system_error(requesT):
pass
def success(request):
return TemplateResponse(request, "in_person/enrollment/success.html")


def system_error(request):
return TemplateResponse(request, "in_person/enrollment/system_error.html")

0 comments on commit 1d62d10

Please sign in to comment.