lib/mihari/models/port.rb in mihari-5.4.3 vs lib/mihari/models/port.rb in mihari-5.4.4

- old
+ new

@@ -3,21 +3,27 @@ module Mihari class Port < ActiveRecord::Base belongs_to :artifact class << self + include Dry::Monads[:result] + # # Build ports # # @param [String] ip # # @return [Array<Mihari::Port>] # def build_by_ip(ip) - res = Enrichers::Shodan.query(ip) - return [] if res.nil? - - res.ports.map { |port| new(port: port) } + result = Enrichers::Shodan.query_result(ip).bind do |res| + if res.nil? + Success [] + else + Success(res.ports.map { |port| new(port: port) }) + end + end + result.value_or [] end end end end