Class: Wegift::Client

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

supported: basic-http-auth - see: playground.wegift.io



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/wegift/client.rb', line 18

def initialize(options = {})
  @api_host = options[:api_host] || 'https://playground.wegift.io'
  @api_path = options[:api_path] || '/api/b2b-sync/v1'
  @api_key = options[:api_key].to_s
  @api_secret = options[:api_secret]

  @connection = Faraday.new(url: @api_host) do |c|
    c.basic_auth(@api_key, @api_secret)
    c.adapter Faraday.default_adapter
    unless options[:proxy].nil?
      c.options[:proxy] = {
        uri: URI(options[:proxy])
      }
    end
  end
end

Instance Attribute Details

#api_hostObject

Returns the value of attribute api_host.



14
15
16
# File 'lib/wegift/client.rb', line 14

def api_host
  @api_host
end

#api_keyObject

Returns the value of attribute api_key.



14
15
16
# File 'lib/wegift/client.rb', line 14

def api_key
  @api_key
end

#api_pathObject

Returns the value of attribute api_path.



14
15
16
# File 'lib/wegift/client.rb', line 14

def api_path
  @api_path
end

#api_secretObject

Returns the value of attribute api_secret.



14
15
16
# File 'lib/wegift/client.rb', line 14

def api_secret
  @api_secret
end

#connectionObject

Returns the value of attribute connection.



14
15
16
# File 'lib/wegift/client.rb', line 14

def connection
  @connection
end

Instance Method Details

#order(options) ⇒ Object



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

def order(options)
  order = Wegift::Order.new(options)
  order.post(self)
end

#product(id = nil) ⇒ Object



54
55
56
57
# File 'lib/wegift/client.rb', line 54

def product(id = nil)
  products = Wegift::Product.new(product_code: id)
  products.get(self)
end

#productsObject

global methods



49
50
51
52
# File 'lib/wegift/client.rb', line 49

def products
  products = Wegift::Products.new
  products.get(self)
end

#remote_code(url) ⇒ Object



69
70
71
72
# File 'lib/wegift/client.rb', line 69

def remote_code(url)
  code = Wegift::RemoteCode.new(url: url)
  code.get(self)
end

#request(method, path, payload = {}) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/wegift/client.rb', line 35

def request(method, path, payload = {})
  @connection.send(method) do |req|
    req.url [@api_path, path].join
    req.headers['Content-Type'] = 'application/json'
    req.body = payload.to_json if method.to_sym.eql?(:post)
    req.params = payload if method.to_sym.eql?(:get)
  end
end

#stock(id) ⇒ Object



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

def stock(id)
  stock = Wegift::Stock.new(id: id)
  stock.get(self)
end