# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.
defmodule VRChat.Api.Playermoderation do
@moduledoc """
API calls for all endpoints tagged `Playermoderation`.
"""
alias VRChat.Connection
import VRChat.RequestBuilder
@doc """
Clear All Player Moderations
⚠️ **This will delete every single player moderation you've ever made.**
## Parameters
- connection (VRChat.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, VRChat.Model.Success.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec clear_all_player_moderations(Tesla.Env.client, keyword()) :: {:ok, VRChat.Model.Success.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def clear_all_player_moderations(connection, _opts \\ []) do
%{}
|> method(:delete)
|> url("/auth/user/playermoderations")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %VRChat.Model.Success{}},
{ 401, %VRChat.Model.Error{}}
])
end
@doc """
Delete Player Moderation
Deletes a specific player moderation based on it's `pmod_` ID. The website uses `unmoderateUser` instead. You can delete the same player moderation multiple times successfully.
## Parameters
- connection (VRChat.Connection): Connection to server
- player_moderation_id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, VRChat.Model.Success.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec delete_player_moderation(Tesla.Env.client, String.t, keyword()) :: {:ok, VRChat.Model.Success.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def delete_player_moderation(connection, player_moderation_id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/auth/user/playermoderations/#{player_moderation_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %VRChat.Model.Success{}},
{ 401, %VRChat.Model.Error{}},
{ 403, %VRChat.Model.Error{}}
])
end
@doc """
Get Player Moderation
Returns a single Player Moderation. This returns the exact same amount of information as the more generalised `getPlayerModerations`.
## Parameters
- connection (VRChat.Connection): Connection to server
- player_moderation_id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, VRChat.Model.PlayerModeration.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec get_player_moderation(Tesla.Env.client, String.t, keyword()) :: {:ok, VRChat.Model.PlayerModeration.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def get_player_moderation(connection, player_moderation_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/auth/user/playermoderations/#{player_moderation_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %VRChat.Model.PlayerModeration{}},
{ 401, %VRChat.Model.Error{}},
{ 404, %VRChat.Model.Error{}}
])
end
@doc """
Search Player Moderations
Returns a list of all player moderations made by **you**. This endpoint does not have pagination, and will return *all* results. Use query parameters to limit your query if needed.
## Parameters
- connection (VRChat.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :type (String.t): Must be one of PlayerModerationType, except unblock. Unblocking simply removes a block.
- :target_user_id (String.t): Must be valid UserID.
## Returns
{:ok, [%PlayerModeration{}, ...]} on success
{:error, Tesla.Env.t} on failure
"""
@spec get_player_moderations(Tesla.Env.client, keyword()) :: {:ok, list(VRChat.Model.PlayerModeration.t)} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def get_player_moderations(connection, opts \\ []) do
optional_params = %{
:type => :query,
:targetUserId => :query
}
%{}
|> method(:get)
|> url("/auth/user/playermoderations")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, [%VRChat.Model.PlayerModeration{}]},
{ 401, %VRChat.Model.Error{}}
])
end
@doc """
Moderate User
Moderate a user, e.g. unmute them or show their avatar. Please see the [Player Moderation docs](https://vrchatapi.github.io/docs/api/#tag--playermoderation) on what playerModerations are, and how they differ from staff moderations.
## Parameters
- connection (VRChat.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :body (ModerateUserRequest):
## Returns
{:ok, VRChat.Model.PlayerModeration.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec moderate_user(Tesla.Env.client, keyword()) :: {:ok, VRChat.Model.PlayerModeration.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def moderate_user(connection, opts \\ []) do
optional_params = %{
:body => :body
}
%{}
|> method(:post)
|> url("/auth/user/playermoderations")
|> add_optional_params(optional_params, opts)
|> ensure_body()
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %VRChat.Model.PlayerModeration{}},
{ 401, %VRChat.Model.Error{}}
])
end
@doc """
Unmoderate User
Removes a player moderation previously added through `moderateUser`. E.g if you previously have shown their avatar, but now want to reset it to default.
## Parameters
- connection (VRChat.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :body (ModerateUserRequest):
## Returns
{:ok, VRChat.Model.Success.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec unmoderate_user(Tesla.Env.client, keyword()) :: {:ok, VRChat.Model.Success.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
def unmoderate_user(connection, opts \\ []) do
optional_params = %{
:body => :body
}
%{}
|> method(:put)
|> url("/auth/user/unplayermoderate")
|> add_optional_params(optional_params, opts)
|> ensure_body()
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %VRChat.Model.Success{}},
{ 401, %VRChat.Model.Error{}}
])
end
end