Sha256: 873f43d262afda405a0997eb3dda312b82a00c93ae77ad1765caccb410ec32cc

Contents?: true

Size: 749 Bytes

Versions: 2

Compression:

Stored size: 749 Bytes

Contents

module Workarea
  module ShipStation
    class SaveOrder
      class ShipStationSaveOrderError < StandardError; end
      include Sidekiq::Worker
      include Sidekiq::CallbacksWorker

      sidekiq_options(
        enqueue_on: { Workarea::Order => [:place] },
        unique: :until_executing
      )

      def perform(id)
        order = Workarea::Order.find(id)
        shipstation_details = Workarea::ShipStation::Order.new(id).to_h
        response = ShipStation.gateway.create_order(shipstation_details)

        raise ShipStationSaveOrderError, response.body["ExceptionMessage"]  unless response.success?
        order.ship_station_order_id = response.body["orderId"]
        order.set_ship_station_exported_at!
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
workarea-ship_station-1.0.1 app/workers/workarea/ship_station/save_order.rb
workarea-ship_station-1.0.0 app/workers/workarea/ship_station/save_order.rb