Sha256: 2e76a85d05995d87105216ad34296667d2cf74ed7600f6c529ef5bdae5269fd3

Contents?: true

Size: 642 Bytes

Versions: 1

Compression:

Stored size: 642 Bytes

Contents

module Gemgento
  class Cart::AddItemWorker
    include Sidekiq::Worker

    def perform(line_item_id)
      line_item = Gemgento::LineItem.find(line_item_id)

      begin
        response = API::SOAP::Checkout::Product.add(line_item.itemizable, [line_item])
        destroy_line_item(line_item) unless response.success?
      rescue
        destroy_line_item(line_item)
      end
    end

    def destroy_line_item(line_item)
      Gemgento::LineItem.skip_callback(:destroy, :before, :destroy_magento_quote_item)
      line_item.destroy
      Gemgento::LineItem.set_callback(:destroy, :before, :destroy_magento_quote_item)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gemgento-2.8.0 app/workers/gemgento/cart/add_item_worker.rb