Sha256: 3090bd596f5f7c7f6b1a19db78af9d8d7c9a3d07dbf67b632dfaf60d479acf1e

Contents?: true

Size: 617 Bytes

Versions: 56

Compression:

Stored size: 617 Bytes

Contents

module Pay
  module Stripe
    module Webhooks
      class CustomerDeleted
        def call(event)
          object = event.data.object
          pay_customer = Pay::Customer.find_by(processor: :stripe, processor_id: object.id)

          # Mark all subscriptions as canceled
          pay_customer.subscriptions.active.update_all(ends_at: Time.current, status: "canceled")

          # Remove all payment methods
          pay_customer.payment_methods.destroy_all

          # Mark customer as deleted
          pay_customer&.update!(default: false, deleted_at: Time.current)
        end
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
pay-6.5.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.4.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.3.4 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.3.3 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.3.2 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.3.1 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.3.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.2.4 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.2.3 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.2.2 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.2.1 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.2.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.1.2 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.1.1 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.1.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.0.3 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.0.2 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.0.1 lib/pay/stripe/webhooks/customer_deleted.rb
pay-6.0.0 lib/pay/stripe/webhooks/customer_deleted.rb
pay-5.0.4 lib/pay/stripe/webhooks/customer_deleted.rb