class Nuvemshop::Request
Constants
- BASE_URL
Attributes
access_token[R]
options[R]
response[RW]
user_id[R]
Public Class Methods
new(*block) { |block| ... }
click to toggle source
# File lib/nuvemshop/request.rb, line 12 def initialize(*block) @base_url = "#{BASE_URL}/#{set_store}" @headers = set_headers yield block if block_given? @options = { headers: @headers } end
respond_with(response, formatter)
click to toggle source
# File lib/nuvemshop/request.rb, line 35 def self.respond_with(response, formatter) Response.new(response, formatter) end
Public Instance Methods
delete(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 31 def delete(opts = {}) perform_request(__method__, opts) end
get(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 19 def get(opts = {}) perform_request(__method__, opts) end
post(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 23 def post(opts = {}) perform_request(__method__, opts) end
put(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 27 def put(opts = {}) perform_request(__method__, opts) end
Private Instance Methods
merge_options(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 49 def merge_options(opts = {}) @options.merge!(body: serialize_hash(opts[:body]), query: sanitize_hash(opts[:query])) end
path(action)
click to toggle source
# File lib/nuvemshop/request.rb, line 63 def path(action) "#{@base_url}/#{action}" end
perform_request(method, opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 41 def perform_request(method, opts = {}) response = self.class.send(method.to_sym, path(opts[:action]), merge_options(opts)) raise Error, response unless response.success? response end
sanitize_hash(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 59 def sanitize_hash(opts = {}) opts.keep_if { |_, v| v } end
serialize_hash(opts = {})
click to toggle source
# File lib/nuvemshop/request.rb, line 53 def serialize_hash(opts = {}) return unless opts sanitize_hash(opts).to_json end
set_access_token()
click to toggle source
# File lib/nuvemshop/request.rb, line 75 def set_access_token access_token || Nuvemshop.store_access_token end
set_headers()
click to toggle source
# File lib/nuvemshop/request.rb, line 67 def set_headers { "Content-Type": 'application/json', 'Authentication': "bearer #{set_access_token}", 'User-Agent': Nuvemshop.user_agent } end
set_store()
click to toggle source
# File lib/nuvemshop/request.rb, line 79 def set_store user_id || Nuvemshop.store_user_id end