Sha256: 4068e310066820689054167e987bd569db4c9a8113955b629ede9c3f472fb263

Contents?: true

Size: 676 Bytes

Versions: 5

Compression:

Stored size: 676 Bytes

Contents

class StripeModelCallbacks::Order::UpdatedService < StripeModelCallbacks::BaseEventService
  def perform
    order.assign_from_stripe(object)

    if order.save
      create_order_items

      succeed!
    else
      fail! order.errors.full_messages
    end
  end

private

  def create_order_items
    object.items.each do |order_item|
      stripe_order_item = StripeOrderItem.find_or_initialize_by(parent_id: order_item.parent)
      stripe_order_item.stripe_order_id = object.id
      stripe_order_item.assign_from_stripe(order_item)
      stripe_order_item.save!
    end
  end

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