Skip to content

Commit

Permalink
fix: adding additional logging to commerce handle_refund_order
Browse files Browse the repository at this point in the history
  • Loading branch information
grmartin committed May 17, 2024
1 parent 4c0623b commit a9b14e8
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions lms/djangoapps/commerce/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
Signal handling functions for use with external commerce service.
"""


import logging

from crum import get_current_request
Expand All @@ -21,13 +20,15 @@
@receiver(REFUND_ORDER)
def handle_refund_order(sender, course_enrollment=None, **kwargs):
"""
Signal receiver for unenrollments, used to automatically initiate refunds
Signal receiver for un-enrollments, used to automatically initiate refunds
when applicable.
"""
if not is_commerce_service_configured():
log.info("Commerce service not configured, skipping refund")
return

if course_enrollment and course_enrollment.refundable():
log.info("Handling refund for course enrollment %s", course_enrollment.course_id)
try:
request_user = get_request_user() or course_enrollment.user
if isinstance(request_user, AnonymousUser):
Expand All @@ -36,7 +37,13 @@ def handle_refund_order(sender, course_enrollment=None, **kwargs):
# construct a client to call Otto back anyway, because
# the client does not work anonymously, and furthermore,
# there's certainly no need to inform Otto about this request.
log.info(
"Anonymous user attempting to initiate refund for course [%s]",
course_enrollment.course_id,
)
return
log.info("Initiating refund_seat for user [%s] for course enrollment %s",
course_enrollment.user.id, course_enrollment.course_id)
refund_seat(course_enrollment, change_mode=True)
except Exception: # pylint: disable=broad-except
# don't assume the signal was fired with `send_robust`.
Expand All @@ -47,6 +54,13 @@ def handle_refund_order(sender, course_enrollment=None, **kwargs):
course_enrollment.user.id,
course_enrollment.course_id,
)
elif course_enrollment:
log.info(
"Not refunding seat for course enrollment %s, as its not refundable",
course_enrollment.course_id
)
else:
log.info("Not refunding seat for course due to missing course enrollment")


def get_request_user():
Expand Down

0 comments on commit a9b14e8

Please sign in to comment.