From fa13eeab270d5878cfcafae98b43de4aa177955e Mon Sep 17 00:00:00 2001 From: kenna-bmcdevitt Date: Tue, 27 Oct 2020 02:04:20 -0500 Subject: [PATCH] make private methods and put query_cve method as main public method --- microsoft_kb/microsoft_kb_checker.rb | 42 +++++++++++++++------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/microsoft_kb/microsoft_kb_checker.rb b/microsoft_kb/microsoft_kb_checker.rb index 6e9a180..97eef79 100644 --- a/microsoft_kb/microsoft_kb_checker.rb +++ b/microsoft_kb/microsoft_kb_checker.rb @@ -64,6 +64,28 @@ class MicrosoftKbChecker 'Windows Server 2012 R2', 'Windows Server 2012 R2 (Server Core installation)' ].freeze + + def query_cve + #TODO: handle error msg better + if os_available? + response = make_request + if response.code == 200 + json = parse_json(response) + os_results = select_os(json) + if os_results.nil? + 'Product not found in response data.' + else + kbs_for_os(os_results) + end + else + 'Problem with HTTP response data.' + end + else + 'Operating system not found.' + end + end + + private def cve_url cve = options[:cve_id] @@ -86,25 +108,7 @@ class MicrosoftKbChecker AVAILABLE_OS.include?(options[:os_name]) end - def query_cve - #TODO: handle error msg better - if os_available? - response = make_request - if response.code == 200 - json = parse_json(response) - os_results = select_os(json) - if os_results.nil? - 'Product not found in response data.' - else - kbs_for_os(os_results) - end - else - 'Problem with HTTP response data.' - end - else - 'Operating system not found.' - end - end + def select_os(json) json.dig('affectedProducts').select do |os|