class Workarea::Orderbot::Gateway
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 7 def initialize(options = {}) requires!(options, :api_user_name, :api_password) @options = options end
Public Instance Methods
create_order(attrs = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 39 def create_order(attrs = {}) response = connection.post do |req| req.url "orders" req.body = attrs.to_json end Orderbot::Response.new(response) end
get_fulfillments(attrs = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 48 def get_fulfillments(attrs = {}) response = connection.get do |req| req.options.params_encoder = Faraday::FlatParamsEncoder req.url "fulfillments" req.params = attrs end Orderbot::Response.new(response) end
get_inventory(attrs = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 21 def get_inventory(attrs = {}) response = connection.get do |req| req.options.params_encoder = Faraday::FlatParamsEncoder req.url "inventory" req.params = attrs end Orderbot::Response.new(response) end
get_pricing(attrs = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 30 def get_pricing(attrs = {}) response = connection.get do |req| req.options.params_encoder = Faraday::FlatParamsEncoder req.url "pricing" req.params = attrs end Orderbot::Response.new(response) end
get_products(attrs = {})
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 12 def get_products(attrs = {}) response = connection.get do |req| req.options.params_encoder = Faraday::FlatParamsEncoder req.url "products" req.params = attrs end Orderbot::Response.new(response) end
Private Instance Methods
connection()
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 60 def connection headers = { "Content-Type" => "application/json", "Accept" => "application/json", 'Authorization' => "Bearer #{token}" } request_timeouts = { timeout: Workarea.config.orderbot[:api_timeout], open_timeout: Workarea.config.orderbot[:open_timeout] } Faraday.new(url: rest_endpoint, headers: headers, request: request_timeouts) end
requires!(hash, *params)
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 88 def requires!(hash, *params) params.each do |param| if param.is_a?(Array) raise ArgumentError.new("Missing required parameter: #{param.first}") unless hash.has_key?(param.first) valid_options = param[1..-1] raise ArgumentError.new("Parameter: #{param.first} must be one of #{valid_options.to_sentence(words_connector: 'or')}") unless valid_options.include?(hash[param.first]) else raise ArgumentError.new("Missing required parameter: #{param}") unless hash.has_key?(param) end end end
rest_endpoint()
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 76 def rest_endpoint if test? "https://staging-api-core.devbot.ca" else "https://api-beta.orderbot.com" end end
test?()
click to toggle source
# File lib/workarea/orderbot/gateway.rb, line 84 def test? (options.has_key?(:test) ? options[:test] : false) end