class Omnikassa2::BaseRequest

Public Class Methods

new(config = {}) click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 3
def initialize(config = {})
  @access_token = config.fetch(:access_token, Omnikassa2::AccessTokenProvider.instance)
end

Public Instance Methods

authorization_method() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 11
def authorization_method
  nil
end
body() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 27
def body
  nil
end
content_type() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 19
def content_type
  nil
end
custom_token() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 15
def custom_token
  nil
end
headers() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 50
def headers
  value = {}
  add_authorization_header value
  add_content_type_header value
  value
end
http_method() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 7
def http_method
  :get
end
path() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 23
def path
  '/'
end
response_decorator() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 31
def response_decorator
  Omnikassa2::BaseResponse
end
send() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 35
def send
  request = request_class.new(uri, headers)
  request.body = body_raw

  http_response = Net::HTTP.start(
    uri.hostname,
    uri.port,
    use_ssl: true
  ) do |http|
    http.request(request)
  end

  response_decorator.nil? ? http_response : response_decorator.new(http_response)
end

Private Instance Methods

add_authorization_header(value) click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 87
def add_authorization_header(value)
  case authorization_method
  when :refresh_token
    value['Authorization'] = "Bearer #{Omnikassa2.refresh_token}"
  when :access_token
    value['Authorization'] = "Bearer #{@access_token}"
  when :custom_token
    value['Authorization'] = "Bearer #{custom_token}"
  end
end
add_content_type_header(value) click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 98
def add_content_type_header(value)
  case content_type
  when :json
    value['Content-Type'] = 'application/json'
  end
end
body_raw() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 59
def body_raw
  return nil if body.nil?
  return body if content_type.nil?

  case content_type
  when :json
    body.to_json
  end
end
request_class() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 69
def request_class
  case http_method
  when :get
    Net::HTTP::Get
  when :post
    Net::HTTP::Post
  when :put
    Net::HTTP::Put
  when :delete
    Net::HTTP::Delete
  end
end
uri() click to toggle source
# File lib/omnikassa2/requests/base_request.rb, line 82
def uri
  tmp_url = Omnikassa2.base_url + path
  URI(tmp_url)
end