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

  alias ChatKitty.Connection
  import ChatKitty.RequestBuilder


  @doc """
  Import channel members
  Batch imports channel members from a JSON array file

  ## Parameters

  - connection (ChatKitty.Connection): Connection to server
  - id (integer()): 
  - file (String.t): JSON array file with user references to be added as members
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, ChatKitty.Model.ApplicationJobResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec import_channel_members(Tesla.Env.client, integer(), String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationJobResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def import_channel_members(connection, id, file, _opts \\ []) do
    %{}
    |> method(:post)
    |> url("/v1/imports/channels/#{id}/members")
    |> add_param(:file, :"file", file)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 202, %ChatKitty.Model.ApplicationJobResource{}}
    ])
  end

  @doc """
  Import channels
  Batch imports channels from a JSON array file

  ## Parameters

  - connection (ChatKitty.Connection): Connection to server
  - file (String.t): JSON array file with channels
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, ChatKitty.Model.ApplicationJobResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec import_channels(Tesla.Env.client, String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationJobResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def import_channels(connection, file, _opts \\ []) do
    %{}
    |> method(:post)
    |> url("/v1/imports/channels")
    |> add_param(:file, :"file", file)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 202, %ChatKitty.Model.ApplicationJobResource{}}
    ])
  end

  @doc """
  Import messages
  Batch imports messages from a JSON array file

  ## Parameters

  - connection (ChatKitty.Connection): Connection to server
  - file (String.t): JSON array file with messages
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, ChatKitty.Model.ApplicationJobResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec import_messages(Tesla.Env.client, String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationJobResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def import_messages(connection, file, _opts \\ []) do
    %{}
    |> method(:post)
    |> url("/v1/imports/messages")
    |> add_param(:file, :"file", file)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 202, %ChatKitty.Model.ApplicationJobResource{}}
    ])
  end

  @doc """
  Import users
  Batch imports users from a JSON array file

  ## Parameters

  - connection (ChatKitty.Connection): Connection to server
  - file (String.t): JSON array file with users
  - opts (KeywordList): [optional] Optional parameters
  ## Returns

  {:ok, ChatKitty.Model.ApplicationJobResource.t} on success
  {:error, Tesla.Env.t} on failure
  """
  @spec import_users(Tesla.Env.client, String.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ApplicationJobResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
  def import_users(connection, file, _opts \\ []) do
    %{}
    |> method(:post)
    |> url("/v1/imports/users")
    |> add_param(:file, :"file", file)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 403, %ChatKitty.Model.AuthenticationError{}},
      { 400, %ChatKitty.Model.ApiError{}},
      { 401, %ChatKitty.Model.AuthenticationError{}},
      { 404, %ChatKitty.Model.ApiError{}},
      { 202, %ChatKitty.Model.ApplicationJobResource{}}
    ])
  end
end