class IletiMerkezi::Request

Request :reek: TooManyInstanceVariables { max_instance_variables: 6 }

Constants

DEFAULT_HEADERS
DEFAULT_OPTIONS

Attributes

config[R]
payload[R]
uri[RW]

:reek: Attribute

Public Class Methods

new(body: nil, payload: '', path: '') click to toggle source
# File lib/ileti_merkezi/utils/request.rb, line 27
def initialize(body: nil, payload: '', path: '')
  @config  = IletiMerkezi.configuration
  @payload = payload
  @path    = path
  @body    = body
  @uri     = URI.parse(@config.endpoint + @path)
end

Public Instance Methods

call() click to toggle source
# File lib/ileti_merkezi/utils/request.rb, line 35
def call
  req      = Net::HTTP::Post.new(@uri.request_uri, DEFAULT_HEADERS)
  req.body = @body || body
  Response.new http.request(req)
end

Private Instance Methods

body() click to toggle source
# File lib/ileti_merkezi/utils/request.rb, line 45
def body
  hash_to_xml(
    request: {
      authentication: Authentication.to_hash,
      order: payload
    }
  )
end
http() click to toggle source
# File lib/ileti_merkezi/utils/request.rb, line 54
def http
  options = DEFAULT_OPTIONS.merge(config.request_overrides)
  http    = Net::HTTP.new(
    uri.hostname, (options[:use_ssl] ? 443 : @uri.port)
  )
  http_configure(http, options)
end
http_configure(http, options) click to toggle source
# File lib/ileti_merkezi/utils/request.rb, line 62
def http_configure(http, options)
  options.each do |option, value|
    setter = "#{option.to_sym}="
    http.send(setter, value) if http.respond_to?(setter)
  end
  http
end