lib/placetel_api/api/subscriptions.ex

# NOTE: This file is auto generated by OpenAPI Generator 6.3.0-SNAPSHOT (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule PlacetelAPI.Api.Subscriptions do
  @moduledoc """
  API calls for all endpoints tagged `Subscriptions`.
  """

  alias PlacetelAPI.Connection
  import PlacetelAPI.RequestBuilder

  @doc """
  Delete a subscription

  ### Parameters

  - `connection` (PlacetelAPI.Connection): Connection to server
  - `id` (String.t): 
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, nil}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec delete_subscriptions_id(Tesla.Env.client(), String.t(), keyword()) ::
          {:ok, nil} | {:error, Tesla.Env.t()}
  def delete_subscriptions_id(connection, id, _opts \\ []) do
    request =
      %{}
      |> method(:delete)
      |> url("/subscriptions/#{id}")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {204, false}
    ])
  end

  @doc """
  List subscriptions
  Fetch a list of all registered subscriptions

  ### Parameters

  - `connection` (PlacetelAPI.Connection): Connection to server
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, [%Subscription{}, ...]}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec get_subscriptions(Tesla.Env.client(), keyword()) ::
          {:ok, list(PlacetelAPI.Model.Subscription.t())} | {:error, Tesla.Env.t()}
  def get_subscriptions(connection, _opts \\ []) do
    request =
      %{}
      |> method(:get)
      |> url("/subscriptions")
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, [%PlacetelAPI.Model.Subscription{}]}
    ])
  end

  @doc """
  Add a subscription

  ### Parameters

  - `connection` (PlacetelAPI.Connection): Connection to server
  - `subscriptions` (PutSubscriptions): 
  - `opts` (keyword): Optional parameters

  ### Returns

  - `{:ok, nil}` on success
  - `{:error, Tesla.Env.t}` on failure
  """
  @spec put_subscriptions(Tesla.Env.client(), PlacetelAPI.Model.PutSubscriptions.t(), keyword()) ::
          {:ok, nil} | {:error, Tesla.Env.t()}
  def put_subscriptions(connection, subscriptions, _opts \\ []) do
    request =
      %{}
      |> method(:put)
      |> url("/subscriptions")
      |> add_param(:body, :body, subscriptions)
      |> Enum.into([])

    connection
    |> Connection.request(request)
    |> evaluate_response([
      {200, false}
    ])
  end
end