Class: EUVD::API::Vulnerabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/euvd/api/vulnerabilities.rb

Overview

Access to vulnerability endpoints: latest, critical, exploited, and search.

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Vulnerabilities

Returns a new instance of Vulnerabilities.



7
8
9
# File 'lib/euvd/api/vulnerabilities.rb', line 7

def initialize(client)
  @client = client
end

Instance Method Details

#criticalArray<Sawyer::Resource>

GET /api/criticalvulnerabilities Returns the latest critical vulnerabilities (maximum 8 records).

Returns:

  • (Array<Sawyer::Resource>)


31
32
33
# File 'lib/euvd/api/vulnerabilities.rb', line 31

def critical
  @client.get('criticalvulnerabilities')
end

#exploitedArray<Sawyer::Resource>

GET /api/exploitedvulnerabilities Returns the latest exploited vulnerabilities (maximum 8 records).

Returns:

  • (Array<Sawyer::Resource>)


23
24
25
# File 'lib/euvd/api/vulnerabilities.rb', line 23

def exploited
  @client.get('exploitedvulnerabilities')
end

#latestArray<Sawyer::Resource>

GET /api/lastvulnerabilities Returns the latest vulnerabilities (maximum 8 records).

Returns:

  • (Array<Sawyer::Resource>)


15
16
17
# File 'lib/euvd/api/vulnerabilities.rb', line 15

def latest
  @client.get('lastvulnerabilities')
end

#search(params = {}) ⇒ Sawyer::Resource

GET /api/search Query vulnerabilities with flexible filters.

Parameters:

  • params (Hash) (defaults to: {})

    Query parameters

Options Hash (params):

  • :text (String)

    Keywords (searches across description, EUVD ID, aliases, product, vendor)

  • :fromScore (Float)

    Minimum CVSS score (0-10)

  • :toScore (Float)

    Maximum CVSS score (0-10)

  • :fromEpss (Integer)

    Minimum EPSS score (0-100)

  • :toEpss (Integer)

    Maximum EPSS score (0-100)

  • :fromDate (String)

    Minimum published date (YYYY-MM-DD)

  • :toDate (String)

    Maximum published date (YYYY-MM-DD)

  • :fromUpdatedDate (String)

    Minimum updated date (YYYY-MM-DD)

  • :toUpdatedDate (String)

    Maximum updated date (YYYY-MM-DD)

  • :product (String)

    Product name

  • :vendor (String)

    Vendor name

  • :assigner (String)

    Assigner name

  • :exploited (Boolean)

    Filter by exploited status

  • :page (Integer)

    Page number (starts at 0)

  • :size (Integer)

    Page size (default 10, max 100)

Returns:

  • (Sawyer::Resource)

    Search results with .items (Array) and .total (Integer)



55
56
57
# File 'lib/euvd/api/vulnerabilities.rb', line 55

def search(params = {})
  @client.get('search', params)
end