# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.
defmodule ChatKitty.Api.Messages do
@moduledoc """
API calls for all endpoints tagged `Messages`.
"""
alias ChatKitty.Connection
import ChatKitty.RequestBuilder
@doc """
Delete a message
Deletes a message by ID
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Message ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ReplyThreadResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec delete_message(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:ok, ChatKitty.Model.ReplyThreadResource.t} | {:error, Tesla.Env.t}
def delete_message(connection, id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/v1/messages/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.ReplyThreadResource{}}
])
end
@doc """
Delete messages
Deletes all messages belonging to this application
## Parameters
- connection (ChatKitty.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ApplicationResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec delete_messages(Tesla.Env.client, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def delete_messages(connection, _opts \\ []) do
%{}
|> method(:delete)
|> url("/v1/messages")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.ApplicationResource{}}
])
end
@doc """
List message read receipts
Returns a page of read receipts for this message
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()):
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Zero-based page index (0..N)
- :size (integer()): The size of the page to be returned
- :sort ([String.t]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
## Returns
{:ok, ChatKitty.Model.PagedModelMessageReadReceiptResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_message_read_receipts(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.PagedModelMessageReadReceiptResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_message_read_receipts(connection, id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/v1/messages/#{id}/read-receipts")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.PagedModelMessageReadReceiptResource{}}
])
end
@doc """
List messages
Returns a page of messages belonging to this application
## Parameters
- connection (ChatKitty.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :size (integer()): The size of the page to be returned
- :start (integer()): Start cursor value. Do not set manually. Provided by the Platform API pagination engine to fetch previous or next pages
- :next (integer()): Next page cursor value. Do not set manually. Provided by the Platform API pagination engine to fetch subsequent pages
- :relation (String.t): Page cursor relation. Do not set manually. Provided by the Platform API pagination engine to fetch previous or next pages
- :username (String.t): Filters messages by a sender's username
- :query (String.t): Filters text messages by text contained in the message body
## Returns
{:ok, ChatKitty.Model.CursorPagedModelMessageResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_messages(Tesla.Env.client, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.CursorPagedModelMessageResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_messages(connection, opts \\ []) do
optional_params = %{
:"size" => :query,
:"start" => :query,
:"next" => :query,
:"relation" => :query,
:"username" => :query,
:"query" => :query
}
%{}
|> method(:get)
|> url("/v1/messages")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.CursorPagedModelMessageResource{}}
])
end
@doc """
Retrieve a message
Returns a message by ID
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Message ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.MessageResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec retrieve_message(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.MessageResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def retrieve_message(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/v1/messages/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.MessageResource{}}
])
end
end