Sha256: 5879f8ffd3a50fd16e9819c7527ed3795686c8937b1589041691d59d5bee7974

Contents?: true

Size: 730 Bytes

Versions: 6

Compression:

Stored size: 730 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Endpoints
    class IPAddresses < Grape::API
      namespace :ip_addresses do
        desc "Get an IP address", {
          success: Entities::IPAddress,
          failure: [{ code: 404, message: "Not found", model: Entities::Message }]
        }
        params do
          requires :ip, type: String, regexp: /\A[0-9.]+\z/
        end
        get "/:ip", requirements: { ip: %r{[^/]+} } do
          ip = params[:ip].to_s

          data = Enrichers::IPInfo.query(ip)
          if data.nil?
            error!({ message: "IP:#{ip} is not found" }, 404)
          else
            present data, with: Entities::IPAddress
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mihari-3.12.0 lib/mihari/web/endpoints/ip_addresses.rb
mihari-3.11.0 lib/mihari/web/endpoints/ip_addresses.rb
mihari-3.10.1 lib/mihari/web/endpoints/ip_addresses.rb
mihari-3.10.0 lib/mihari/web/endpoints/ip_addresses.rb
mihari-3.9.2 lib/mihari/web/endpoints/ip_addresses.rb
mihari-3.9.1 lib/mihari/web/endpoints/ip_addresses.rb