lib/vr_chat/api/instances.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.Instances do
  @moduledoc """
  API calls for all endpoints tagged `Instances`.
  """

  alias VRChat.Connection
  import VRChat.RequestBuilder


  @doc """
  Get Instance
  Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances.  If an invalid instanceId is provided, this endpoint will simply return \"null\"!

  ## Parameters

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

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

  @doc """
  Get Instance Short Name
  Returns an instance short name.

  ## Parameters

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

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

  @doc """
  Send Self Invite
  Sends an invite to the instance to yourself.

  ## Parameters

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

  {:ok, VRChat.Model.Success.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec send_self_invite(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, VRChat.Model.Success.t} | {:ok, VRChat.Model.Error.t} | {:error, Tesla.Env.t}
  def send_self_invite(connection, world_id, instance_id, _opts \\ []) do
    %{}
    |> method(:post)
    |> url("/instances/#{world_id}:#{instance_id}/invite")
    |> ensure_body()
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 200, %VRChat.Model.Success{}},
      { 401, %VRChat.Model.Error{}}
    ])
  end
end