# 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.Users do
@moduledoc """
API calls for all endpoints tagged `Users`.
"""
alias ChatKitty.Connection
import ChatKitty.RequestBuilder
@doc """
Check a user exists
Checks if a user exists
## Parameters
- connection (ChatKitty.Connection): Connection to server
- name (String.t): Username of the user
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, map()} on success
{:error, Tesla.Env.t} on failure
"""
@spec check_user_exists(Tesla.Env.client, String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, Map.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def check_user_exists(connection, name, _opts \\ []) do
%{}
|> method(:head)
|> url("/v1/users")
|> add_param(:query, :"name", name)
|> 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, %{}}
])
end
@doc """
Create a user
Creates a new user
## Parameters
- connection (ChatKitty.Connection): Connection to server
- create_person_chat_user_resource (CreatePersonChatUserResource):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec create_user(Tesla.Env.client, ChatKitty.Model.CreatePersonChatUserResource.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def create_user(connection, create_person_chat_user_resource, _opts \\ []) do
%{}
|> method(:post)
|> url("/v1/users")
|> add_param(:body, :body, create_person_chat_user_resource)
|> 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.ChatUserResource{}}
])
end
@doc """
Delete a user
Delets a user
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ApplicationResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec delete_user(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def delete_user(connection, id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/v1/users/#{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.ApplicationResource{}}
])
end
@doc """
List a user's channels
Returns a page of channels for this user created or joined
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- 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.PagedModelChannelResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_user_channels(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.PagedModelChannelResource.t} | {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_user_channels(connection, id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/v1/users/#{id}/channels")
|> 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.PagedModelChannelResource{}}
])
end
@doc """
List a user's messages
Returns a page of messages sent by this user
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- 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
- :unread (boolean()): Filters by returning unread messages
## Returns
{:ok, ChatKitty.Model.CursorPagedModelMessageResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_user_messages(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.CursorPagedModelMessageResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_user_messages(connection, id, opts \\ []) do
optional_params = %{
:"size" => :query,
:"start" => :query,
:"next" => :query,
:"relation" => :query,
:"unread" => :query
}
%{}
|> method(:get)
|> url("/v1/users/#{id}/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 """
List a user's notifications
Returns a page of notifications received by this user
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- 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
## Returns
{:ok, ChatKitty.Model.CursorPagedModelNotificationResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_user_notifications(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:ok, ChatKitty.Model.CursorPagedModelNotificationResource.t} | {:error, Tesla.Env.t}
def list_user_notifications(connection, id, opts \\ []) do
optional_params = %{
:"size" => :query,
:"start" => :query,
:"next" => :query,
:"relation" => :query
}
%{}
|> method(:get)
|> url("/v1/users/#{id}/notifications")
|> 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.CursorPagedModelNotificationResource{}}
])
end
@doc """
List users
Returns a page of users belonging to this application
## Parameters
- connection (ChatKitty.Connection): Connection to server
- 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.
- :name (String.t): Filters by username
## Returns
{:ok, ChatKitty.Model.PagedModelChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_users(Tesla.Env.client, keyword()) :: {:ok, ChatKitty.Model.PagedModelChatUserResource.t} | {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_users(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query,
:"name" => :query
}
%{}
|> method(:get)
|> url("/v1/users")
|> 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.PagedModelChatUserResource{}}
])
end
@doc """
Remove a user secret
Removes a user secret's value
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- name (String.t): The secret's name
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec remove_user_secret(Tesla.Env.client, integer(), String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def remove_user_secret(connection, id, name, _opts \\ []) do
%{}
|> method(:delete)
|> url("/v1/users/#{id}/secrets/#{name}")
|> 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.ChatUserResource{}}
])
end
@doc """
Retrieve a user
Returns a user by ID
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec retrieve_user(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def retrieve_user(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/v1/users/#{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.ChatUserResource{}}
])
end
@doc """
Retrieve a user secret
Returns a user secret
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- name (String.t): The secret's name
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.SecretResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec retrieve_user_secret(Tesla.Env.client, integer(), String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.SecretResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def retrieve_user_secret(connection, id, name, _opts \\ []) do
%{}
|> method(:get)
|> url("/v1/users/#{id}/secrets/#{name}")
|> 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.SecretResource{}}
])
end
@doc """
Set a user secret
Sets a user secret's value
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- name (String.t): The secret's name
- secret_resource (SecretResource):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec set_user_secret(Tesla.Env.client, integer(), String.t, ChatKitty.Model.SecretResource.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def set_user_secret(connection, id, name, secret_resource, _opts \\ []) do
%{}
|> method(:put)
|> url("/v1/users/#{id}/secrets/#{name}")
|> add_param(:body, :body, secret_resource)
|> 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.ChatUserResource{}}
])
end
@doc """
Update a user
Updates a user
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- opts (KeywordList): [optional] Optional parameters
- :body (ChatUserPropertiesPatch):
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec update_user(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def update_user(connection, id, opts \\ []) do
optional_params = %{
:body => :body
}
%{}
|> method(:patch)
|> url("/v1/users/#{id}")
|> add_optional_params(optional_params, opts)
|> ensure_body()
|> 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.ChatUserResource{}}
])
end
@doc """
Update a user's display picture
Updates a user's display picture
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): User ID
- create_external_file_properties (CreateExternalFileProperties):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatUserResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec update_user_display_picture(Tesla.Env.client, integer(), ChatKitty.Model.CreateExternalFileProperties.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatUserResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def update_user_display_picture(connection, id, create_external_file_properties, _opts \\ []) do
%{}
|> method(:post)
|> url("/v1/users/#{id}/display-picture")
|> add_param(:body, :body, create_external_file_properties)
|> 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.ChatUserResource{}}
])
end
end