Class: Anvil::Vulnerability

Inherits:
Object
  • Object
show all
Defined in:
lib/anvil/vulnerability.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Vulnerability

Returns a new instance of Vulnerability.

Raises:

  • (ArgumentError)


5
6
7
8
9
# File 'lib/anvil/vulnerability.rb', line 5

def initialize(client)
  raise ArgumentError, 'client param must be a Client class' if client.class != Anvil::Client

  @client = client
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



3
4
5
# File 'lib/anvil/vulnerability.rb', line 3

def args
  @args
end

#clientObject (readonly)

Returns the value of attribute client.



3
4
5
# File 'lib/anvil/vulnerability.rb', line 3

def client
  @client
end

Instance Method Details

#create!(*params) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/anvil/vulnerability.rb', line 11

def create!(*params)
  params.first[:evidences].each do |archive_path|
    params.first[:vulnerability_archives_attributes] = [{ archive: Faraday::UploadIO.new(archive_path, 'image/png') }]
  end
  params.first.delete(:evidences)

  conn = Faraday.new(url: @client.base_url) do |f|
    f.request :multipart
    f.request :url_encoded
    f.adapter :net_http
  end
  conn.post '/api/v2/vulnerabilities', vulnerability: params.first,
                                       api_key: @client.api_key
end