class B2W::Base

Public Class Methods

camel_case(key) click to toggle source
# File lib/b2w/base.rb, line 51
def self.camel_case(key)
  key.to_s.gsub(/_\w/) { $&.upcase }.gsub(/_/, '')
end
endpoint() click to toggle source
# File lib/b2w/base.rb, line 35
def self.endpoint
  "https://#{version}.bonmarketplace.com.br"
end
execute(method, url, params = {}, &block) click to toggle source
# 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 = {}) click to toggle source
# File lib/b2w/base.rb, line 15
def self.get(resource, params = {})
  JSON.parse(execute(:get, "#{endpoint}/#{resource}?#{to_params(params)}"))
end
new(data) click to toggle source
# File lib/b2w/base.rb, line 7
def initialize(data)
  @data = data
end
post(resource, payload, &block) click to toggle source
# File lib/b2w/base.rb, line 19
def self.post(resource, payload, &block)
  execute(:post, "#{endpoint}/#{resource}", body: payload, &block)
end
to_params(params) click to toggle source
# File lib/b2w/base.rb, line 47
def self.to_params(params)
  params.map { |key, value| "#{camel_case(key)}=#{value}" }.join "&"
end
token() click to toggle source
# File lib/b2w/base.rb, line 39
def self.token
  B2W.config[:token]
end
version() click to toggle source
# File lib/b2w/base.rb, line 43
def self.version
  B2W.config[:sandbox] ? "api-sandbox" : "api-marketplace"
end

Public Instance Methods

[](key) click to toggle source
# File lib/b2w/base.rb, line 3
def [](key)
  @data[key]
end
persisted?() click to toggle source
# File lib/b2w/base.rb, line 11
def persisted?
  self[:persisted]
end
put(resource, path, payload) click to toggle source
# File lib/b2w/base.rb, line 23
def put(resource, path, payload)
  self.class.execute(:put, "#{self.class.endpoint}/#{resource}/#{path}", body: payload)
end