From 4c542c2a41e846458989b22be204545e0ff211cb Mon Sep 17 00:00:00 2001 From: Syed Sajjad Hussain Shah Date: Tue, 31 Dec 2024 15:36:33 +0500 Subject: [PATCH] feat: add paypal refunds diagram --- docs/arch-diagrams/automatic-refunds.mmd | 45 ++++++++++++++++++++++++ docs/arch-diagrams/manual-refunds.mmd | 23 ++++++++++++ docs/arch-diagrams/webhook-refunds.mmd | 17 +++++++++ 3 files changed, 85 insertions(+) create mode 100644 docs/arch-diagrams/automatic-refunds.mmd create mode 100644 docs/arch-diagrams/manual-refunds.mmd create mode 100644 docs/arch-diagrams/webhook-refunds.mmd diff --git a/docs/arch-diagrams/automatic-refunds.mmd b/docs/arch-diagrams/automatic-refunds.mmd new file mode 100644 index 00000000..6064511d --- /dev/null +++ b/docs/arch-diagrams/automatic-refunds.mmd @@ -0,0 +1,45 @@ +sequenceDiagram + actor User as User + participant LMS as LMS + participant CC + participant CoCo + participant AWS as AWS EventBridge + participant PSP as Stripe/PayPal + + note over User,LMS: User Unenrolls from Course + User ->> LMS: Click on Gear CTA -> Click "Unenroll" -> Answer Question + LMS ->> LMS: Determines Which System to Hit + LMS ->> LMS: Checks Source System of Enrollment Attributes
(COMMERCE_COORDINATOR_REFUND_SOURCE_SYSTEMS) + + critical Create Refund + LMS ->> CC: Hits RefundView() Endpoint + activate CC + CC ->> CoCo: Create ReturnItemDraft + activate CoCo + CoCo ->> CoCo: Creates LineItemReturnItem + CoCo ->> CoCo: Shipment State Transitions to "Returned" + CoCo ->> CoCo: Payment State Transitions to "Initial" + CoCo -->> CC: Response + deactivate CoCo + CC -->> LMS: Response + deactivate CC + end + + CoCo ->> AWS: Emits LineItemReturnItem Subscription Message + AWS ->> CC: Hits OrderReturnedView() Endpoint + CC ->> CC: Receives message from CoCo via AWS EventBridge
with details of ReturnItem + CC ->> CC: Triggers fulfill_order_returned_signal
worker_task + CC ->> PSP: Issue Credit + activate PSP + PSP -->> CC: Response + deactivate PSP + CC ->> CoCo: Add Refund Transaction to Payment Obj + activate CoCo + CoCo -->> CC: Response + deactivate CoCo + CC ->> CoCo: Update Refund Status + activate CoCo + CoCo -->> CC: Response + deactivate CoCo + note over User,LMS: LMS Unenrolls User + LMS -->> User: Removes Course from Dashboard diff --git a/docs/arch-diagrams/manual-refunds.mmd b/docs/arch-diagrams/manual-refunds.mmd new file mode 100644 index 00000000..4a5ba296 --- /dev/null +++ b/docs/arch-diagrams/manual-refunds.mmd @@ -0,0 +1,23 @@ +sequenceDiagram + actor Support + participant CoCo + participant AWS EventBridge + participant Commerce Coordinator + participant PSP as Stripe/PayPal + Support->>CoCo: Create ReturnItem + CoCo->>AWS EventBridge: Emits LineItemReturnItem Subscription Message + AWS EventBridge->>Commerce Coordinator: Hits OrderReturnedView() Endpoint + Commerce Coordinator->>Commerce Coordinator: Receives message from CoCo via AWS EventBridge
with details of the ReturnItem + Commerce Coordinator->>Commerce Coordinator: Triggers fulfill_order_returned_signal
worker task + Commerce Coordinator->>PSP: Issue Credit + activate PSP + PSP-->>Commerce Coordinator: Response + deactivate PSP + Commerce Coordinator->>CoCo: Add Refund Transaction to Payment Obj + activate CoCo + CoCo-->>Commerce Coordinator: Response + deactivate CoCo + Commerce Coordinator->>CoCo: Update Refund Status + activate CoCo + CoCo-->>Commerce Coordinator: Response + deactivate CoCo diff --git a/docs/arch-diagrams/webhook-refunds.mmd b/docs/arch-diagrams/webhook-refunds.mmd new file mode 100644 index 00000000..b4623987 --- /dev/null +++ b/docs/arch-diagrams/webhook-refunds.mmd @@ -0,0 +1,17 @@ +sequenceDiagram + actor Support + participant PSP as Stripe/PayPal + participant CC as Commerce Coordinator + participant CoCo + note over Support, PSP: Support Issues Refund
from PSP Dashboard + Support ->> PSP: Issue Refund + activate PSP + PSP -->> PSP: Issues Refund to User + PSP -->> PSP: Triggers refund Webhook + PSP ->> CC: Hits WebhookView() Endpoint + deactivate PSP + activate CC + CC -->> CC: Sends payment_refunded_signal
signal + CC -->> CC: Triggers refund_from_stripe_task
worker task + CC ->> CoCo: Adds Refund Transaction
to Payment Obj + deactivate CC