class Ratonvirus::AntivirusCheckService
Attributes
file_path[RW]
result[RW]
Public Class Methods
installed?()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 20 def self.installed? true end
new(path)
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 13 def initialize(path) @file_path = path @logger = Logger.new(STDOUT) @result = Result.new end
Public Instance Methods
call()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 24 def call perform_request @result end
Private Instance Methods
base_url()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 78 def base_url Ratonvirus::Resty::Configuration.service_url end
connection()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 53 def connection @connection ||= initialize_connection end
initialize_connection()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 61 def initialize_connection Faraday.new(base_url, proxy: proxy) do |f| f.request :url_encoded f.request :multipart f.request :basic_auth, Ratonvirus::Resty::Configuration.username, Ratonvirus::Resty::Configuration.password if request_use_basic_auth? f.adapter :net_http end end
initialize_upload_file()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 70 def initialize_upload_file Faraday::UploadIO.new(file_path, mime_type) end
mime_type()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 74 def mime_type MimeMagic.by_path(file_path) end
parse_response()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 47 def parse_response @logger.debug { "Parsing response #{@response.body}"} string_to_parse = @response.body.gsub("Status","\"Status\"").gsub("Description","\"Description\"") JSON.parse(string_to_parse).transform_keys(&:downcase) end
perform_request()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 31 def perform_request @logger.debug { "Performing request to #{base_url}" } begin @response = connection.post(base_url) do |request| request.headers['Content-Type'] = 'multipart/form-data' request.body = { file: initialize_upload_file } end @result.parsed_response = parse_response unless @response.success? @logger.debug { "API request respond with status code #{@response.status}: #{parse_response}"} end rescue => exception @logger.debug { "There was an error performing the API request: #{exception.message}"} end end
proxy()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 90 def proxy Ratonvirus::Resty::Configuration.proxy_url end
request_headers()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 57 def request_headers { 'Content-Type' => 'application/json;charset=UTF-8' } end
request_path()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 82 def request_path "#{base_url}" end
request_use_basic_auth?()
click to toggle source
# File lib/ratonvirus/services/antivirus_check_service.rb, line 86 def request_use_basic_auth? Ratonvirus::Resty::Configuration.username && Ratonvirus::Resty::Configuration.password end