Class: B2W::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/b2w/base.rb

Direct Known Subclasses

Batch, Order, Product

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Base

Returns a new instance of Base.



7
8
9
# File 'lib/b2w/base.rb', line 7

def initialize(data)
  @data = data
end

Class Method Details

.camel_case(key) ⇒ Object



51
52
53
# File 'lib/b2w/base.rb', line 51

def self.camel_case(key)
  key.to_s.gsub(/_\w/) { $&.upcase }.gsub(/_/, '')
end

.endpointObject



35
36
37
# File 'lib/b2w/base.rb', line 35

def self.endpoint
  "https://#{version}.bonmarketplace.com.br"
end

.execute(method, url, params = {}, &block) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/b2w/base.rb', line 27

def self.execute(method, url, params = {}, &block)
  if params[:body]
    params[:headers] = { content_type: 'application/json;charset=UTF-8' }
    params[:payload] = JSON.generate params[:body]
  end
  RestClient::Request.execute({ method: method, url: url, user: token }.merge(params), &block)
end

.get(resource, params = {}) ⇒ Object



15
16
17
# File 'lib/b2w/base.rb', line 15

def self.get(resource, params = {})
  JSON.parse(execute(:get, "#{endpoint}/#{resource}?#{to_params(params)}"))
end

.post(resource, payload, &block) ⇒ Object



19
20
21
# File 'lib/b2w/base.rb', line 19

def self.post(resource, payload, &block)
  execute(:post, "#{endpoint}/#{resource}", body: payload, &block)
end

.to_params(params) ⇒ Object



47
48
49
# File 'lib/b2w/base.rb', line 47

def self.to_params(params)
  params.map { |key, value| "#{camel_case(key)}=#{value}" }.join "&"
end

.tokenObject



39
40
41
# File 'lib/b2w/base.rb', line 39

def self.token
  B2W.config[:token]
end

.versionObject



43
44
45
# File 'lib/b2w/base.rb', line 43

def self.version
  B2W.config[:sandbox] ? "api-sandbox" : "api-marketplace"
end

Instance Method Details

#[](key) ⇒ Object



3
4
5
# File 'lib/b2w/base.rb', line 3

def [](key)
  @data[key]
end

#persisted?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/b2w/base.rb', line 11

def persisted?
  self[:persisted]
end

#put(resource, path, payload) ⇒ Object



23
24
25
# File 'lib/b2w/base.rb', line 23

def put(resource, path, payload)
  self.class.execute(:put, "#{self.class.endpoint}/#{resource}/#{path}", body: payload)
end