class SolidusClient::Client

Solidus API Client entrypoint

Public Class Methods

new(url: nil, api_key: nil) click to toggle source
# File lib/solidus_client/client.rb, line 10
def initialize(url: nil, api_key: nil)
  url ||= ENV['SOLIDUS_URL']
  api_key ||= ENV['SOLIDUS_API_KEY']

  @connection = Faraday.new(url: url + '/api') do |connection|
    connection.authorization(:Bearer, api_key)
    connection.use Faraday::Response::RaiseError
    connection.headers['Content-Type'] = 'application/json'
    connection.request(:json)
    connection.response(:json, parser_options: { symbolize_names: true })
    connection.adapter Faraday.default_adapter
  end
end

Public Instance Methods

add_item(order_number, data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 44
def add_item(order_number, data = {})
  post("orders/#{order_number}/line_items", data)
end
advance_checkout(order_number) click to toggle source
# File lib/solidus_client/client.rb, line 52
def advance_checkout(order_number)
  put("checkouts/#{order_number}/next")
end
complete_checkout(order_number) click to toggle source
# File lib/solidus_client/client.rb, line 56
def complete_checkout(order_number)
  put("checkouts/#{order_number}/complete")
end
create_order(data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 40
def create_order(data = {})
  post('orders', data)
end
create_product(data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 36
def create_product(data = {})
  post('products', data)
end
enter_payment_details(order_number, data) click to toggle source
# File lib/solidus_client/client.rb, line 76
def enter_payment_details(order_number, data)
  post("orders/#{order_number}/payments", data)
end
payments() click to toggle source
# File lib/solidus_client/client.rb, line 68
def payments
  get('products')
end
products() click to toggle source
# File lib/solidus_client/client.rb, line 32
def products
  get('products')
end
remove_item(order_number, item_id) click to toggle source
# File lib/solidus_client/client.rb, line 48
def remove_item(order_number, item_id)
  delete("orders/#{order_number}/line_items/#{item_id}")
end
select_shipping_method(shipment_number, data) click to toggle source
# File lib/solidus_client/client.rb, line 72
def select_shipping_method(shipment_number, data)
  put("shipments/#{shipment_number}/select_shipping_method", data)
end
shipping_rates(shipment_number) click to toggle source
# File lib/solidus_client/client.rb, line 64
def shipping_rates(shipment_number)
  get("shipments/#{shipment_number}/estimated_rates")
end
shipping_zones() click to toggle source
# File lib/solidus_client/client.rb, line 28
def shipping_zones
  get('zones')
end
states(country_id) click to toggle source
# File lib/solidus_client/client.rb, line 24
def states(country_id)
  get("countries/#{country_id}/states")
end
update_order(order_number, data) click to toggle source
# File lib/solidus_client/client.rb, line 60
def update_order(order_number, data)
  patch("orders/#{order_number}", data)
end

Private Instance Methods

delete(path) click to toggle source
# File lib/solidus_client/client.rb, line 98
def delete(path)
  request(:delete, path)
end
get(path) click to toggle source
# File lib/solidus_client/client.rb, line 82
def get(path)
  request(:get, path)
end
patch(path, data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 94
def patch(path, data = {})
  request(:patch, path, data)
end
post(path, data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 86
def post(path, data = {})
  request(:post, path, data)
end
put(path, data = {}) click to toggle source
# File lib/solidus_client/client.rb, line 90
def put(path, data = {})
  request(:put, path, data)
end
request(method, path, data = nil) click to toggle source
# File lib/solidus_client/client.rb, line 102
def request(method, path, data = nil)
  @connection.send(method, path, data).body
rescue Faraday::ClientError => e
  pp e.response[:body]
  raise
end