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