# frozen_string_literal: true require 'json' module NoradBeacon class Result # rubocop:disable ParameterLists def initialize(nid, status, output, title, description, sir = 'unevaluated') @nid = nid @sir = cvss_to_sir(sir) @status = status @output = output @title = title @description = description end # rubocop:enable ParameterLists def to_json(*a) { nid: @nid, sir: @sir, status: @status, output: @output, title: @title, description: @description }.to_json(*a) end private def cvss_to_sir(sir) return sir if sir !~ /\A\d+\.?\d*\z/ case sir.to_f when 0.0..3.9 then return 'low' when 4.0..6.9 then return 'medium' when 7.0..8.9 then return 'high' when 9.0..10.0 then return 'critical' else return 'unevaluated' end end end end