Class: SolidusClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/solidus_client/client.rb

Overview

Solidus API Client entrypoint

Instance Method Summary collapse

Constructor Details

#initialize(url: nil, api_key: nil) ⇒ Client

Returns a new instance of Client.



10
11
12
13
14
15
16
17
18
19
20
21
22
# 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

Instance Method Details

#add_item(order_number, data = {}) ⇒ Object



44
45
46
# 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) ⇒ Object



52
53
54
# File 'lib/solidus_client/client.rb', line 52

def advance_checkout(order_number)
  put("checkouts/#{order_number}/next")
end

#complete_checkout(order_number) ⇒ Object



56
57
58
# File 'lib/solidus_client/client.rb', line 56

def complete_checkout(order_number)
  put("checkouts/#{order_number}/complete")
end

#create_order(data = {}) ⇒ Object



40
41
42
# File 'lib/solidus_client/client.rb', line 40

def create_order(data = {})
  post('orders', data)
end

#create_product(data = {}) ⇒ Object



36
37
38
# File 'lib/solidus_client/client.rb', line 36

def create_product(data = {})
  post('products', data)
end

#enter_payment_details(order_number, data) ⇒ Object



76
77
78
# File 'lib/solidus_client/client.rb', line 76

def enter_payment_details(order_number, data)
  post("orders/#{order_number}/payments", data)
end

#paymentsObject



68
69
70
# File 'lib/solidus_client/client.rb', line 68

def payments
  get('products')
end

#productsObject



32
33
34
# File 'lib/solidus_client/client.rb', line 32

def products
  get('products')
end

#remove_item(order_number, item_id) ⇒ Object



48
49
50
# 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) ⇒ Object



72
73
74
# 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) ⇒ Object



64
65
66
# File 'lib/solidus_client/client.rb', line 64

def shipping_rates(shipment_number)
  get("shipments/#{shipment_number}/estimated_rates")
end

#shipping_zonesObject



28
29
30
# File 'lib/solidus_client/client.rb', line 28

def shipping_zones
  get('zones')
end

#states(country_id) ⇒ Object



24
25
26
# File 'lib/solidus_client/client.rb', line 24

def states(country_id)
  get("countries/#{country_id}/states")
end

#update_order(order_number, data) ⇒ Object



60
61
62
# File 'lib/solidus_client/client.rb', line 60

def update_order(order_number, data)
  patch("orders/#{order_number}", data)
end