class SolidusShipstation::Api::Client

Attributes

error_handler[R]
request_runner[R]
shipment_serializer[R]

Public Class Methods

from_config() click to toggle source
# File lib/solidus_shipstation/api/client.rb, line 7
def from_config
  new(
    request_runner: RequestRunner.from_config,
    error_handler: SolidusShipstation.config.error_handler,
    shipment_serializer: SolidusShipstation.config.api_shipment_serializer,
  )
end
new(request_runner:, error_handler:, shipment_serializer:) click to toggle source
# File lib/solidus_shipstation/api/client.rb, line 18
def initialize(request_runner:, error_handler:, shipment_serializer:)
  @request_runner = request_runner
  @error_handler = error_handler
  @shipment_serializer = shipment_serializer
end

Public Instance Methods

bulk_create_orders(shipments) click to toggle source
# File lib/solidus_shipstation/api/client.rb, line 24
def bulk_create_orders(shipments)
  params = shipments.map do |shipment|
    shipment_serializer.call(shipment)
  rescue StandardError => e
    error_handler.call(e, shipment: shipment)
    nil
  end.compact

  return if params.empty?

  request_runner.call(:post, '/orders/createorders', params)
end