# 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.NativeDM do
@moduledoc """
API calls for all endpoints tagged `NativeDM`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Add a reaction to a DM message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec add_native_dm_reaction(Tesla.Env.client, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def add_native_dm_reaction(connection, message_id, request_body, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/messages/#{message_id}/reactions")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Attach a file to a DM message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec attach_to_native_dm_message(Tesla.Env.client, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def attach_to_native_dm_message(connection, message_id, request_body, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/messages/#{message_id}/attachments")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Delete a DM message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `message_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec delete_native_dm_message(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def delete_native_dm_message(connection, dm_id, message_id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/native/dm/#{dm_id}/messages/#{message_id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Forward a DM message to another conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec forward_native_dm_message(Tesla.Env.client, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def forward_native_dm_message(connection, message_id, request_body, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/messages/#{message_id}/forward")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the caller's DM channels.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_native_dm_channels(Tesla.Env.client, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_native_dm_channels(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/native/dm")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List DM conversations with metadata (last message, unread count, etc.).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_native_dm_conversations(Tesla.Env.client, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_native_dm_conversations(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/native/dm/conversations")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List messages in a DM.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_native_dm_messages(Tesla.Env.client, String.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_native_dm_messages(connection, dm_id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/native/dm/#{dm_id}/messages")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List pinned messages in a DM.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_native_dm_pinned_messages(Tesla.Env.client, String.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_native_dm_pinned_messages(connection, dm_id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/native/dm/#{dm_id}/pinned")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
List threaded replies on a message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `message_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_native_dm_thread_replies(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_native_dm_thread_replies(connection, dm_id, message_id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/native/dm/#{dm_id}/messages/#{message_id}/replies")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Mark a DM as read.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec mark_native_dm_read(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def mark_native_dm_read(connection, dm_id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/#{dm_id}/read")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Mute a DM.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
- `:body` (%{optional(String.t) => any()}):
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec mute_native_dm(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def mute_native_dm(connection, dm_id, opts \\ []) do
optional_params = %{
:body => :body
}
request =
%{}
|> method(:post)
|> url("/v1/native/dm/#{dm_id}/mute")
|> add_optional_params(optional_params, opts)
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Pin a DM conversation in the sidebar.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec pin_native_dm_conversation(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def pin_native_dm_conversation(connection, dm_id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/#{dm_id}/pin")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Pin a DM message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec pin_native_dm_message(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def pin_native_dm_message(connection, message_id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/messages/#{message_id}/pin")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Post a DM message (top-level entry).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec post_native_dm_message(Tesla.Env.client, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def post_native_dm_message(connection, request_body, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Post a threaded reply.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `message_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec post_native_dm_thread_reply(Tesla.Env.client, String.t, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def post_native_dm_thread_reply(connection, dm_id, message_id, request_body, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/native/dm/#{dm_id}/messages/#{message_id}/replies")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Remove a reaction.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `emoji` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec remove_native_dm_reaction(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def remove_native_dm_reaction(connection, message_id, emoji, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/native/dm/messages/#{message_id}/reactions/#{emoji}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Search DM messages.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:q` (String.t):
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec search_native_dm_messages(Tesla.Env.client, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def search_native_dm_messages(connection, opts \\ []) do
optional_params = %{
:q => :query
}
request =
%{}
|> method(:get)
|> url("/v1/native/dm/search")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
@doc """
Save a draft on a DM conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec set_native_dm_draft(Tesla.Env.client, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def set_native_dm_draft(connection, dm_id, request_body, _opts \\ []) do
request =
%{}
|> method(:put)
|> url("/v1/native/dm/#{dm_id}/draft")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Unpin a DM conversation.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec unpin_native_dm_conversation(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def unpin_native_dm_conversation(connection, dm_id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/native/dm/#{dm_id}/pin")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Unpin a DM message.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `message_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec unpin_native_dm_message(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def unpin_native_dm_message(connection, message_id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/native/dm/messages/#{message_id}/pin")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Update a DM message body.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `dm_id` (String.t):
- `message_id` (String.t):
- `request_body` (%{optional(String.t) => any()}):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, %{}}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec update_native_dm_message(Tesla.Env.client, String.t, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, %{optional(String.t) => any()}} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def update_native_dm_message(connection, dm_id, message_id, request_body, _opts \\ []) do
request =
%{}
|> method(:patch)
|> url("/v1/native/dm/#{dm_id}/messages/#{message_id}")
|> add_param(:body, :body, request_body)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %{}},
{401, Spatio.Model.ApiError}
])
end
end