lib/chat_kitty/api/application.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 ChatKitty.Api.Application do
  @moduledoc """
  API calls for all endpoints tagged `Application`.
  """

  alias ChatKitty.Connection
  import ChatKitty.RequestBuilder


  @doc """
  Retrieve the authenticated application
  Returns the ChatKitty application associated with the authentication credentials used.  You must use an **OAuth V2 Bearer token** to access this endpoint.

  ## Parameters

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

  {:ok, ChatKitty.Model.ApplicationResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec retrieve_authenticated_application(Tesla.Env.client, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def retrieve_authenticated_application(connection, _opts \\ []) do
    %{}
    |> method(:get)
    |> url("/v1/application")
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 200, %ChatKitty.Model.ApplicationResource{}}
    ])
  end

  @doc """
  Retrieve the authenticated application settings
  Returns the current settings configuring this application

  ## Parameters

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

  {:ok, ChatKitty.Model.ApplicationSettingsResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec retrieve_authenticated_application_settings(Tesla.Env.client, keyword()) :: {:ok, ChatKitty.Model.ApplicationSettingsResource.t} | {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def retrieve_authenticated_application_settings(connection, _opts \\ []) do
    %{}
    |> method(:get)
    |> url("/v1/application/settings")
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 200, %ChatKitty.Model.ApplicationSettingsResource{}}
    ])
  end

  @doc """
  Update the authenticated application settings
  Update the settings configuring this application

  ## Parameters

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

  {:ok, ChatKitty.Model.ApplicationSettingsResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec update_authenticated_application_settings(Tesla.Env.client, ChatKitty.Model.ApplicationSettingsProperties.t, keyword()) :: {:ok, ChatKitty.Model.ApplicationSettingsResource.t} | {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def update_authenticated_application_settings(connection, application_settings_properties, _opts \\ []) do
    %{}
    |> method(:put)
    |> url("/v1/application/settings")
    |> add_param(:body, :body, application_settings_properties)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 200, %ChatKitty.Model.ApplicationSettingsResource{}}
    ])
  end
end