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