class VtApi::ApiV2::URL
Class that represents URL
scan report.
Attributes
filescan_id[R]
id[R]
permalink[R]
scan_date[R]
url[R]
Public Class Methods
from_response(api_resp)
click to toggle source
Shorthand for initialize.
@see initialize
# File lib/vt_api/api/v2/url.rb, line 38 def self.from_response(api_resp) # noinspection RubyResolve if api_resp.response_code.nil? || (api_resp.response_code < 1) nil else report = new api_resp report end end
new(api_resp)
click to toggle source
Initializes new object from VT API response. @note Direct creation of object cas cause errors since it doesn't contain any validity checks.
Use predefined API method bindings instead.
@see .report @see .schedule_scan
@param [OpenStruct] api_resp
# File lib/vt_api/api/v2/url.rb, line 58 def initialize(api_resp) load_id!(api_resp) load_meta!(api_resp) load_scans!(api_resp) end
report(resource:, scan: false)
click to toggle source
@see developers.virustotal.com/v2.0/reference#url-report
@param [String] resource @param [Boolean] scan Schedule URL
scan if it is not present in system. @return [URL] URL
report object is present, nil
otherwise.
# File lib/vt_api/api/v2/url.rb, line 16 def report(resource:, scan: false) resp = ApiV2.provider.request 'url.report', apikey: VtApi.options.token, resource: resource, schedule_scan: (scan ? 1 : 0) pp resp from_response resp end
schedule_scan(url:)
click to toggle source
@see developers.virustotal.com/v2.0/reference#url-scan
@param [String] url @return [String] Scheduled scan ID.
# File lib/vt_api/api/v2/url.rb, line 29 def schedule_scan(url:) resp = ApiV2.provider.request 'url.report', apikey: VtApi.options.token, url: url resp.scan_id end
Private Instance Methods
load_id!(api_resp)
click to toggle source
noinspection RubyResolve
# File lib/vt_api/api/v2/url.rb, line 80 def load_id!(api_resp) @id = api_resp.scan_id @url = api_resp.url end
load_meta!(api_resp)
click to toggle source
# File lib/vt_api/api/v2/url.rb, line 73 def load_meta!(api_resp) @scan_date = api_resp.scan_date @permalink = api_resp.permalink @filescan_id = api_resp.filescan_id end
load_scans!(api_resp)
click to toggle source
noinspection RubyResolve
# File lib/vt_api/api/v2/url.rb, line 67 def load_scans!(api_resp) @scan_count = api_resp.total @trigger_count = api_resp.positives @scans = api_resp.scans end