# 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.Connections do
@moduledoc """
API calls for all endpoints tagged `Connections`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Disconnect a connected account.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `disconnect_connection_request` (DisconnectConnectionRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec disconnect_connection(Tesla.Env.client, Spatio.Model.DisconnectConnectionRequest.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def disconnect_connection(connection, disconnect_connection_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/connections/disconnect")
|> add_param(:body, :body, disconnect_connection_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Begin an OAuth install for a connection.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `install_connection_request` (InstallConnectionRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec install_connection(Tesla.Env.client, Spatio.Model.InstallConnectionRequest.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def install_connection(connection, install_connection_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/connections/install")
|> add_param(:body, :body, install_connection_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the caller's multi-provider accounts.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AccountListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_accounts(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.AccountListResponse.t} | {:error, Tesla.Env.t}
def list_accounts(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/accounts")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AccountListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List supported integrations + their connection state. Legacy path; `/v1/connections/list` is the preferred alias.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ConnectionListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_connection_integrations(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ConnectionListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_connection_integrations(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/connections/integrations")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ConnectionListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List supported integrations + their connection state.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ConnectionListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_connections(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ConnectionListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_connections(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/connections/list")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ConnectionListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the caller's connected accounts.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ConnectionAccountListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_user_connections(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ConnectionAccountListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_user_connections(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/connections/user")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ConnectionAccountListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Force a refresh of a connection's OAuth tokens.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `refresh_connection_request` (RefreshConnectionRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec refresh_connection(Tesla.Env.client, Spatio.Model.RefreshConnectionRequest.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def refresh_connection(connection, refresh_connection_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/connections/refresh")
|> add_param(:body, :body, refresh_connection_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Remove an account.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `account_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec remove_account(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def remove_account(connection, account_id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/accounts/#{account_id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Resolve an account by provider/identifier.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:provider` (String.t):
- `:email` (String.t):
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec resolve_account(Tesla.Env.client, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def resolve_account(connection, opts \\ []) do
optional_params = %{
:provider => :query,
:email => :query
}
request =
%{}
|> method(:get)
|> url("/v1/accounts/resolve")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Force a sync against the upstream provider.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `account_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec sync_account(Tesla.Env.client, String.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def sync_account(connection, account_id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/accounts/#{account_id}/sync")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Update account metadata (label, etc.).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `account_id` (String.t):
- `update_account_request` (UpdateAccountRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec update_account(Tesla.Env.client, String.t, Spatio.Model.UpdateAccountRequest.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def update_account(connection, account_id, update_account_request, _opts \\ []) do
request =
%{}
|> method(:patch)
|> url("/v1/accounts/#{account_id}")
|> add_param(:body, :body, update_account_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
end