# NOTE: This file is auto generated by OpenAPI Generator 7.22.0 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule Spatio.Api.Search do
@moduledoc """
API calls for all endpoints tagged `Search`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Cross-platform federated search.
Fans out to every platform's per-platform search method in parallel, merges + dedupes results, and returns them in a relevance-then-recency ranking with per-platform cursors for pagination.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `federated_search_request` (FederatedSearchRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.FederatedSearch200Response.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec federated_search(Tesla.Env.client, Spatio.Model.FederatedSearchRequest.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.FederatedSearch200Response.t} | {:error, Tesla.Env.t}
def federated_search(connection, federated_search_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/search")
|> add_param(:body, :body, federated_search_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.FederatedSearch200Response},
{400, false},
{401, false}
])
end
end