Module: Kagi::API::Contracts

Defined in:
lib/kagi/api/contracts/fast.rb,
lib/kagi/api/contracts/meta.rb,
lib/kagi/api/contracts/error.rb,
lib/kagi/api/contracts/search.rb,
lib/kagi/api/contracts/summary.rb,
lib/kagi/api/contracts/reference.rb

Constant Summary collapse

Fast =

Validates Fast GPT data.

Dry::Schema.JSON do
  required(:meta).hash Meta

  required(:data).hash do
    required(:output).filled :string
    required(:tokens).filled :integer
    required(:references).array(Reference)
  end
end
Meta =

Validates meta data.

Dry::Schema.JSON do
  required(:id).filled :string
  required(:node).filled :string
  required(:ms).filled :integer
  optional(:api_balance) { filled? > int? | float? }
end
Error =

Validates error data.

Dry::Schema.JSON do
  required(:meta).hash Meta

  required(:error).array(:hash) do
    required(:code).filled :integer
    required(:msg).filled :string
    required(:ref).maybe :string
  end
end
Search =

Validates search data.

Dry::Schema.JSON do
  required(:meta).hash Meta

  required(:data).array(:hash) do
    required(:t).filled :integer
    optional(:rank).filled :integer
    optional(:url).filled :string
    optional(:title).filled :string
    optional(:snippet).maybe :string
    optional(:published).filled :time

    optional(:thumbnail).hash do
      required(:url).filled :string
      optional(:width).filled :integer
      optional(:height).filled :integer
    end
  end
end
Summary =

Validates summary data.

Dry::Schema.JSON do
  required(:meta).hash Meta

  required(:data).hash do
    required(:output).filled :string
    required(:tokens).filled :integer
  end
end
Reference =

Validates reference data.

Dry::Schema.JSON do
  required(:title).filled :string
  required(:snippet).filled :string
  required(:url).filled :string
end