Class: Amsi::Utils::RequestFetcher

Inherits:
Object
  • Object
show all
Defined in:
lib/amsi/utils/request_fetcher.rb

Overview

Send a SOAP request to AMSI

Defined Under Namespace

Modules: Status

Instance Method Summary collapse

Constructor Details

#initialize(generator:, conn: Faraday.new) ⇒ RequestFetcher

Returns a new instance of RequestFetcher.

Parameters:



12
13
14
15
# File 'lib/amsi/utils/request_fetcher.rb', line 12

def initialize(generator:, conn: Faraday.new)
  @generator = generator
  @conn = conn
end

Instance Method Details

#fetchString

Returns the XML response from AMSI.

Returns:

  • (String)

    the XML response from AMSI



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/amsi/utils/request_fetcher.rb', line 18

def fetch
  response = conn.post(generator.url) do |request|
    request.body = generator.body
    request.headers = generator.headers
  end

  if response.status == Status::TIMEOUT
    raise Error::RequestTimeout,
          'The server did not respond in a reasonable timeframe'
  end

  response.body
end