Sha256: 39d0f87573e6a3157c19b572c3b8a0ba1b9d5d64595cd425678469db423cf2e0

Contents?: true

Size: 758 Bytes

Versions: 5

Compression:

Stored size: 758 Bytes

Contents

class StripeModelCallbacks::Customer::Subscription::UpdatedService < StripeModelCallbacks::BaseEventService
  def perform
    subscription.assign_from_stripe(object)
    subscription.deleted_at ||= Time.zone.now if event.type == "customer.subscription.deleted"

    if subscription.save
      create_activity
      succeed!
    else
      fail! subscription.errors.full_messages
    end
  end

private

  def create_activity
    case event.type
    when "customer.subscription.trial_will_end"
      subscription.create_activity :trial_will_end
    when "customer.subscription.deleted"
      subscription.create_activity :deleted
    end
  end

  def subscription
    @subscription ||= StripeSubscription.find_or_initialize_by(stripe_id: object.id)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stripe_model_callbacks-0.1.7 app/services/stripe_model_callbacks/customer/subscription/updated_service.rb
stripe_model_callbacks-0.1.6 app/services/stripe_model_callbacks/customer/subscription/updated_service.rb
stripe_model_callbacks-0.1.5 app/services/stripe_model_callbacks/customer/subscription/updated_service.rb
stripe_model_callbacks-0.1.4 app/services/stripe_model_callbacks/customer/subscription/updated_service.rb
stripe_model_callbacks-0.1.3 app/services/stripe_model_callbacks/customer/subscription/updated_service.rb