lib/vr_chat/api/permissions.ex

# 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.Permissions do
  @moduledoc """
  API calls for all endpoints tagged `Permissions`.
  """

  alias VRChat.Connection
  import VRChat.RequestBuilder


  @doc """
  Get Assigned Permissions
  Returns a list of all permissions currently granted by the user. Permissions are assigned e.g. by subscribing to VRC+.

  ## Parameters

  - connection (VRChat.Connection): Connection to server
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, [%Permission{}, ...]} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec get_assigned_permissions(Tesla.Env.client, keyword()) :: {:ok, list(VRChat.Model.Permission.t)} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
  def get_assigned_permissions(connection, _opts \\ []) do
    %{}
    |> method(:get)
    |> url("/auth/permissions")
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 200, [%VRChat.Model.Permission{}]},
      { 401, %VRChat.Model.Error{}}
    ])
  end

  @doc """
  Get Permission
  Returns a single permission. This endpoint is pretty useless, as it returns the exact same information as `/auth/permissions`.

  ## Parameters

  - connection (VRChat.Connection): Connection to server
  - permission_id (String.t): 
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, VRChat.Model.Permission.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec get_permission(Tesla.Env.client, String.t, keyword()) :: {:ok, VRChat.Model.Permission.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
  def get_permission(connection, permission_id, _opts \\ []) do
    %{}
    |> method(:get)
    |> url("/permissions/#{permission_id}")
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 200, %VRChat.Model.Permission{}},
      { 401, %VRChat.Model.Error{}}
    ])
  end
end