Class: Qualys::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/qualys_api/base.rb

Direct Known Subclasses

Auth, KnowledgeBase, Scans

Constant Summary collapse

PLATFORMS =
{
  na: 'https://qualysapi.qualys.com/api/2.0/fo/',
  na2: 'https://qualysapi.qg2.apps.qualys.com/api/2.0/fo/',
  na3: 'https://qualysapi.qg3.apps.qualys.com/api/2.0/fo/',
  eu: 'https://qualysapi.qualys.eu/api/2.0/fo/',
  eu1: 'https://qualysapi.qg2.apps.qualys.eu/api/2.0/fo/',
  in: 'https://qualysapi.qg1.apps.qualys.in/api/2.0/fo/'
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(username, password, server = :na) ⇒ Base

Returns a new instance of Base.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/qualys_api/base.rb', line 17

def initialize(username, password, server = :na)
  raise Qualys::InvalidRegion if PLATFORMS[server].nil?

  @server = PLATFORMS[server]

  @conn = Faraday.new(url: @server) do |faraday|
    faraday.request :url_encoded
    faraday.adapter Faraday.default_adapter
    faraday.response :xml,  content_type: /\bxml$/
    faraday.response :json, content_type: /\bjson$/
  end

  @conn.basic_auth(username, password)
end

Instance Method Details

#get(url, params = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/qualys_api/base.rb', line 32

def get(url, params = {})
  response = @conn.get do |req|
    req.url url
    req.params = params
    req.headers['X-Requested-With'] = 'ruby qualys_api'
  end

  if response.status.eql?(401)
    raise Qualys::LoginRequired, 'Invalid Login Credentials'
  elsif !response.status.eql?(200)
    raise Qualys::InvalidResponse, 'Invalid Response Received'
  end

  response
end

#post(url, params = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/qualys_api/base.rb', line 48

def post(url, params = {})
  response = @conn.post do |req|
    req.url url
    req.body = params
    req.headers['X-Requested-With'] = 'ruby qualys_api'
  end

  if response.status.eql?(401)
    raise Qualys::LoginRequired, 'Invalid Login Credentials'
  elsif !response.status.eql?(200)
    raise Qualys::InvalidResponse, 'Invalid Response Received'
  end

  response
end