Sha256: c8b0616d04b9eb7c64002b35ebc1ea75608ad45867b3778a3d1769c1b3a72bca

Contents?: true

Size: 715 Bytes

Versions: 5

Compression:

Stored size: 715 Bytes

Contents

class StripeModelCallbacks::Source::UpdatedService < StripeModelCallbacks::BaseEventService
  def perform
    source.assign_from_stripe(object)

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

private

  def create_activity
    case event.type
    when "source.canceled"
      source.create_activity :canceled
    when "source.chargeable"
      source.create_activity :chargeable
    when "source.failed"
      source.create_activity :failed
    when "source.mandate_notification"
      source.create_activity :mandate_notification
    end
  end

  def source
    @source ||= StripeSource.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/source/updated_service.rb
stripe_model_callbacks-0.1.6 app/services/stripe_model_callbacks/source/updated_service.rb
stripe_model_callbacks-0.1.5 app/services/stripe_model_callbacks/source/updated_service.rb
stripe_model_callbacks-0.1.4 app/services/stripe_model_callbacks/source/updated_service.rb
stripe_model_callbacks-0.1.3 app/services/stripe_model_callbacks/source/updated_service.rb