Sha256: f5e2bf64fac9e06017cf1f2c90b5a9c304a9f8513b0bc57d147d82c0ee7d5a40

Contents?: true

Size: 1.41 KB

Versions: 26

Compression:

Stored size: 1.41 KB

Contents

module Pay
  module Paddle
    module Webhooks
      class SubscriptionUpdated
        def call(event)
          pay_subscription = Pay::Subscription.find_by_processor_and_id(:paddle, event["subscription_id"])

          return if pay_subscription.nil?

          case event["status"]
          when "deleted"
            pay_subscription.status = "canceled"
            pay_subscription.ends_at = Time.zone.parse(event["next_bill_date"]) || Time.current if pay_subscription.ends_at.blank?
          when "trialing"
            pay_subscription.status = "trialing"
            pay_subscription.trial_ends_at = Time.zone.parse(event["next_bill_date"])
          when "active"
            pay_subscription.status = "active"
            pay_subscription.pause_starts_at = Time.zone.parse(event["paused_from"]) if event["paused_from"].present?
          else
            pay_subscription.status = event["status"]
          end

          pay_subscription.quantity = event["new_quantity"]
          pay_subscription.processor_plan = event["subscription_plan_id"]
          pay_subscription.paddle_update_url = event["update_url"]
          pay_subscription.paddle_cancel_url = event["cancel_url"]

          # If user was on trial, their subscription ends at the end of the trial
          pay_subscription.ends_at = pay_subscription.trial_ends_at if pay_subscription.on_trial?

          pay_subscription.save!
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
pay-6.8.1 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.8.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.7.2 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.7.1 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.7.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.6.1 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.6.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.5.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.4.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.3.4 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.3.3 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.3.2 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.3.1 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.3.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.2.4 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.2.3 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.2.2 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.2.1 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.2.0 lib/pay/paddle/webhooks/subscription_updated.rb
pay-6.1.2 lib/pay/paddle/webhooks/subscription_updated.rb