class Vigilion::HTTP
Constants
- HOW_TO_CONFIGURE
- INVALID_CREDENTIALS
Attributes
method[RW]
options[RW]
url[RW]
Public Class Methods
digest(body)
click to toggle source
# File lib/vigilion/http.rb, line 40 def self.digest(body) Digest::MD5.hexdigest("#{body}#{Vigilion::Configuration.secret_access_key}") end
new()
click to toggle source
# File lib/vigilion/http.rb, line 5 def initialize validate_access_keys @conn = ::Faraday.new(url: Configuration.server_url) do |c| c.request :multipart c.request :json c.response :json, content_type: /\bjson$/ if Configuration.debug c.response :detailed_logger, Configuration.logger end c.adapter ::Faraday.default_adapter c.headers = { 'X-Api-Key' => Configuration.access_key_id, 'User-Agent' => "Vigilion #{Vigilion::VERSION} (#{RUBY_PLATFORM}, Ruby #{RUBY_VERSION})" } end end
Public Instance Methods
get(uuid)
click to toggle source
# File lib/vigilion/http.rb, line 30 def get(uuid) response = @conn.get "/scans/#{uuid}" response.body end
scan_path(key, path, options = {})
click to toggle source
# File lib/vigilion/http.rb, line 26 def scan_path(key, path, options = {}) send scan: options.merge({ key: key, file: Faraday::UploadIO.new(path, 'application') }) end
scan_url(key, url, options = {})
click to toggle source
# File lib/vigilion/http.rb, line 22 def scan_url(key, url, options = {}) send scan: options.merge({ key: key, url: Addressable::URI.unescape(url) }) end
validate()
click to toggle source
# File lib/vigilion/http.rb, line 35 def validate response = @conn.get "/projects/validate" process_response("", response) end
Private Instance Methods
process_response(request, response)
click to toggle source
# File lib/vigilion/http.rb, line 63 def process_response(request, response) raise Vigilion::Error.new(INVALID_CREDENTIALS) if response.status == 401 raise Vigilion::Error.new("Payment required: #{response.body['error']}") if response.status == 402 unless response.success? raise Vigilion::Error.new("Invalid scanning request: #{request}. Status: #{response.status}. Response: #{response.body}") end response.body end
send(request)
click to toggle source
# File lib/vigilion/http.rb, line 58 def send(request) response = @conn.post "/scans", request process_response(request, response) end
validate_access_keys()
click to toggle source
# File lib/vigilion/http.rb, line 72 def validate_access_keys raise Vigilion::Error.new("Configuration.access_key_id is not present\n#{HOW_TO_CONFIGURE}") unless Configuration.access_key_id raise Vigilion::Error.new("Configuration.secret_access_key is not present\n#{HOW_TO_CONFIGURE}") unless Configuration.secret_access_key end