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

  alias VRChat.Connection
  import VRChat.RequestBuilder


  @doc """
  Get Current Subscriptions
  Get a list of all current user subscriptions.

  ## Parameters

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

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

  @doc """
  Get License Group
  Get a single License Group by given ID.

  ## Parameters

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

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

  @doc """
  Get Steam Transaction
  Get a single Steam transactions by ID. This returns the exact same information as `getSteamTransactions`, so no point in using this endpoint.

  ## Parameters

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

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

  @doc """
  List Steam Transactions
  Get all own Steam transactions.

  ## Parameters

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

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

  @doc """
  List Subscriptions
  List all existing Subscriptions. For example, \"vrchatplus-monthly\" and \"vrchatplus-yearly\".

  ## Parameters

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

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