Class: B2W::Base
- Inherits:
-
Object
- Object
- B2W::Base
- Defined in:
- lib/b2w/base.rb
Class Method Summary collapse
- .camel_case(key) ⇒ Object
- .endpoint ⇒ Object
- .execute(method, url, params = {}, &block) ⇒ Object
- .get(resource, params = {}) ⇒ Object
- .post(resource, payload, &block) ⇒ Object
- .to_params(params) ⇒ Object
- .token ⇒ Object
- .version ⇒ Object
Instance Method Summary collapse
- #[](key) ⇒ Object
-
#initialize(data) ⇒ Base
constructor
A new instance of Base.
- #persisted? ⇒ Boolean
- #put(resource, path, payload) ⇒ Object
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 |
.endpoint ⇒ Object
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 |
.token ⇒ Object
39 40 41 |
# File 'lib/b2w/base.rb', line 39 def self.token B2W.config[:token] end |
.version ⇒ Object
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
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 |