Class: EacEnvs::Http::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_envs/http/request.rb,
lib/eac_envs/http/request/body_field.rb,
lib/eac_envs/http/request/body_fields.rb,
lib/eac_envs/http/request/body_field_value.rb

Defined Under Namespace

Classes: BodyField, BodyFieldValue, BodyFields

Constant Summary collapse

BOOLEAN_MODIFIERS =
%w[ssl_verify].freeze
COMMON_MODIFIERS =
%w[auth body_data response_body_data_proc url verb].freeze
HASH_MODIFIERS =
%w[header].freeze
MODIFIERS =
COMMON_MODIFIERS + BOOLEAN_MODIFIERS + HASH_MODIFIERS.map(&:pluralize)

Instance Method Summary collapse

Instance Method Details

#basic_auth(username, password) ⇒ Object



24
25
26
# File 'lib/eac_envs/http/request.rb', line 24

def basic_auth(username, password)
  auth(::Struct.new(:username, :password).new(username, password))
end

#faraday_connectionFaraday::Connection

Returns:

  • (Faraday::Connection)


29
30
31
32
33
34
35
36
37
38
39
# File 'lib/eac_envs/http/request.rb', line 29

def faraday_connection
  ::Faraday.default_connection_options[:headers] = {}
  ::Faraday::Connection.new(faraday_connection_options) do |conn|
    if body_with_file?
      conn.request :multipart, flat_encode: true
    else
      conn.request :url_encoded
    end
    auth.if_present { |v| conn.request :authorization, :basic, v.username, v.password }
  end
end

#faraday_connection_optionsHash

Returns:

  • (Hash)


42
43
44
45
46
# File 'lib/eac_envs/http/request.rb', line 42

def faraday_connection_options
  {
    request: { params_encoder: Faraday::FlatParamsEncoder }, ssl: { verify: ssl_verify? }
  }
end

#faraday_responseFaraday::Response

Returns:

  • (Faraday::Response)


49
50
51
52
53
54
55
# File 'lib/eac_envs/http/request.rb', line 49

def faraday_response
  conn = faraday_connection
  conn.send(sanitized_verb, url) do |req|
    req.headers = conn.headers.merge(headers)
    sanitized_body_data.if_present { |v| req.body = v }
  end
end

#responseObject



57
58
59
# File 'lib/eac_envs/http/request.rb', line 57

def response
  ::EacEnvs::Http::Response.new(self)
end

#sanitized_verbSymbol

Returns:

  • (Symbol)


62
63
64
# File 'lib/eac_envs/http/request.rb', line 62

def sanitized_verb
  verb.if_present(VERB_GET) { |v| self.class.lists.verb.value_validate!(v) }
end