Problem
Stripe webhook handling is spread across multiple services with mixed responsibilities.
Tasks
- Create domain models for Stripe events (e.g.,
StripeEvent, CheckoutSession, SubscriptionEvent)
- Extract event handlers into separate command objects
- Implement event factory pattern
- Simplify
StripeWebhookService to only orchestrate
Acceptance Criteria
Files to modify
app/services/stripe_webhook_service.rb
app/services/stripe_signature_verification_service.rb
- Create new files in
app/models/stripe/
- Update
spec/services/stripe_webhook_service_spec.rb
Phase: 2 (Domain)
Priority: High
Problem
Stripe webhook handling is spread across multiple services with mixed responsibilities.
Tasks
StripeEvent,CheckoutSession,SubscriptionEvent)StripeWebhookServiceto only orchestrateAcceptance Criteria
app/models/stripe/directory with domain modelsStripeWebhookServicereduced to <50 linesFiles to modify
app/services/stripe_webhook_service.rbapp/services/stripe_signature_verification_service.rbapp/models/stripe/spec/services/stripe_webhook_service_spec.rbPhase: 2 (Domain)
Priority: High