class SptyAPI::HTTP::Client

Constants

CONTENT_TYPE
DEFAULT_API

Attributes

access_token[RW]
api_overwrite[RW]
body_parameter[RW]
content_type_overwrite[RW]
endpoint[RW]
http_method[RW]
path_parameter[RW]
query_parameter[RW]
token_type[RW]

Public Class Methods

new(http_method:, token_type:, access_token: nil, endpoint:) click to toggle source
# File lib/spty_api/http/client.rb, line 15
def initialize(http_method:, token_type:, access_token: nil, endpoint:)
  self.http_method  = http_method
  self.token_type   = token_type
  self.access_token = access_token
  self.endpoint     = endpoint
end

Public Instance Methods

request() click to toggle source
# File lib/spty_api/http/client.rb, line 22
def request
  uri = prepare_uri
  http = prepare_http(uri)
  http.request(prepare_request(uri))
end

Private Instance Methods

prepare_body_parameter() click to toggle source
# File lib/spty_api/http/client.rb, line 70
def prepare_body_parameter
  return body_parameter.to_json if content_type_overwrite.nil?
  body_parameter
end
prepare_content_type() click to toggle source
# File lib/spty_api/http/client.rb, line 66
def prepare_content_type
  (content_type_overwrite.nil?) ? CONTENT_TYPE : content_type_overwrite
end
prepare_http(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 51
def prepare_http(uri)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  http
end
prepare_query_parameter() click to toggle source
# File lib/spty_api/http/client.rb, line 39
def prepare_query_parameter
  return '' if query_parameter.nil?

  q_params = ''
  query_parameter.each_with_index do |(key, value), index|
    q_params += '&' if index > 0
    q_params += "#{key}=#{value}"
  end

  q_params
end
prepare_request(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 59
def prepare_request(uri)
  req = self.send("setup_request_#{http_method}", uri)
  req['Authorization'] = "#{token_type} #{access_token}"

  req
end
prepare_uri() click to toggle source
# File lib/spty_api/http/client.rb, line 30
def prepare_uri
  id  = (path_parameter.nil?) ? '' : path_parameter[:id]
  api = (api_overwrite.nil?) ? DEFAULT_API : api_overwrite
  uri = "#{api}#{endpoint}"
  uri += "/#{id}" if id != ''
  uri += "?#{prepare_query_parameter}"
  URI.parse(uri)
end
setup_request_delete(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 95
def setup_request_delete(uri)
  Net::HTTP::Delete.new(uri.request_uri)
end
setup_request_get(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 75
def setup_request_get(uri)
  Net::HTTP::Get.new(uri.request_uri)
end
setup_request_post(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 79
def setup_request_post(uri)
  req = Net::HTTP::Post.new(uri.request_uri)
  req.body = prepare_body_parameter
  req["Content-Type"] = prepare_content_type

  req
end
setup_request_put(uri) click to toggle source
# File lib/spty_api/http/client.rb, line 87
def setup_request_put(uri)
  req = Net::HTTP::Put.new(uri.request_uri)
  req.body = prepare_body_parameter
  req["Content-Type"] = prepare_content_type

  req
end