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