# Documentation link: # https://access.redhat.com/documentation/en-us/red_hat_security_data_api/1.0/html/red_hat_security_data_api/overview # frozen_string_literal: true require 'rest-client' require 'json' class RhelSecurityApiClient attr_accessor :base_url def initialize @base_url = 'https://access.redhat.com/hydra/rest/securitydata' end # params is a hash that looks like # {:params => {:key => value}} def request(path, params) r = RestClient::Request.execute( method: :get, url: "#{base_url}#{path}", headers: params ) if r.code == 200 parse_response(r) else "Error HTTP Code: #{r.code}" end end def parse_response(response) JSON.parse(response.body) end def cve_pkg_adv(array_of_json_cves) array_of_json_cves.map do |json| { cve_id: json['CVE'], advisories: json['advisories'], affected_packages: json['affected_packages'] } end end end