class Digicert::Request

Attributes

attributes[R]

Public Class Methods

new(http_method, end_point, params: {}, **attributes) click to toggle source
# File lib/digicert/request.rb, line 11
def initialize(http_method, end_point, params: {}, **attributes)
  @end_point = end_point
  @http_method = http_method
  @attributes = attributes
  @query_params = params
end

Public Instance Methods

parse() click to toggle source
# File lib/digicert/request.rb, line 22
def parse
  Digicert::Response.new(run).parse
end
run() click to toggle source
# File lib/digicert/request.rb, line 18
def run
  valid_response || raise_response_error
end

Private Instance Methods

build_query_params() click to toggle source
# File lib/digicert/request.rb, line 91
def build_query_params
  if @query_params
    Digicert::Util.to_query(@query_params)
  end
end
constanize_net_http_class() click to toggle source
# File lib/digicert/request.rb, line 74
def constanize_net_http_class
  Object.const_get("Net::HTTP::#{@http_method.capitalize}")
end
debug_mode_on?() click to toggle source
# File lib/digicert/request.rb, line 114
def debug_mode_on?
  @debug_mode ||= Digicert.configuration.debug_mode?
end
digicert_api_path_with_base() click to toggle source
# File lib/digicert/request.rb, line 97
def digicert_api_path_with_base
  ["", Digicert.configuration.base_path, @end_point].join("/").squeeze("/")
end
error_message() click to toggle source
# File lib/digicert/request.rb, line 105
def error_message
  JSON(response.body)["errors"]
rescue response.inspect
end
http_request() click to toggle source
# File lib/digicert/request.rb, line 51
def http_request
  @http_request ||= constanize_net_http_class.new(uri).tap do |request|
    set_request_body!(request)
    set_request_headers!(request)
  end
end
log_details_in_debug_mode() click to toggle source
# File lib/digicert/request.rb, line 118
def log_details_in_debug_mode
  if debug_mode_on?
    require "digicert/debugger"
    Digicert::Debugger.new(request: http_request, response: response).debug
  end
end
net_http_options() click to toggle source
# File lib/digicert/request.rb, line 62
def net_http_options
  [uri.host, uri.port, use_ssl: true]
end
raise_response_error() click to toggle source
# File lib/digicert/request.rb, line 58
def raise_response_error
  raise response_error, error_message
end
response() click to toggle source
# File lib/digicert/request.rb, line 39
def response
  @response ||= send_http_request
rescue *server_errors => error
  @response ||= error
end
response_error() click to toggle source
# File lib/digicert/request.rb, line 101
def response_error
  Digicert::Errors.error_klass_for(response)
end
send_http_request() click to toggle source
# File lib/digicert/request.rb, line 45
def send_http_request
  Net::HTTP.start(*net_http_options) do |http|
    http.request(http_request)
  end
end
server_errors() click to toggle source
# File lib/digicert/request.rb, line 110
def server_errors
  Digicert::Errors.server_errors
end
set_request_body!(request) click to toggle source
# File lib/digicert/request.rb, line 78
def set_request_body!(request)
  unless attributes.empty?
    request.body = attributes.to_json
  end
end
set_request_headers!(request) click to toggle source
# File lib/digicert/request.rb, line 84
def set_request_headers!(request)
  request.initialize_http_header(
    "Content-Type" => "application/json",
    "X-DC-DEVKEY" => Digicert.configuration.api_key,
  )
end
uri() click to toggle source
# File lib/digicert/request.rb, line 66
def uri
  URI::HTTPS.build(
    host: Digicert.configuration.api_host,
    path: digicert_api_path_with_base,
    query: build_query_params,
  )
end
valid_response() click to toggle source
# File lib/digicert/request.rb, line 30
def valid_response
  log_details_in_debug_mode
  return response if valid_response?
end
valid_response?() click to toggle source
# File lib/digicert/request.rb, line 35
def valid_response?
  response.is_a?(Net::HTTPSuccess)
end