lib/mail_slurp_api/api/export_controller.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 MailSlurpAPI.Api.ExportController do
  @moduledoc """
  API calls for all endpoints tagged `ExportController`.
  """

  alias MailSlurpAPI.Connection
  import MailSlurpAPI.RequestBuilder


  @doc """
  Export inboxes link callable via browser

  ## Parameters

  - connection (MailSlurpAPI.Connection): Connection to server
  - export_type (String.t): 
  - api_key (String.t): 
  - output_format (String.t): 
  - opts (KeywordList): [optional] Optional parameters
    - :filter (String.t): 
    - :list_separator_token (String.t): 
    - :exclude_previously_exported (boolean()): 
    - :created_earliest_time (DateTime.t): 
    - :created_oldest_time (DateTime.t): 
  ## Returns

  {:ok, [%String{}, ...]} on success
  {:error, info} on failure
  """
  @spec export_entities(Tesla.Env.client, String.t, String.t, String.t, keyword()) :: {:ok, list(String.t)} | {:error, Tesla.Env.t}
  def export_entities(connection, export_type, api_key, output_format, opts \\ []) do
    optional_params = %{
      :"filter" => :query,
      :"listSeparatorToken" => :query,
      :"excludePreviouslyExported" => :query,
      :"createdEarliestTime" => :query,
      :"createdOldestTime" => :query
    }
    %{}
    |> method(:get)
    |> url("/export")
    |> add_param(:query, :"exportType", export_type)
    |> add_param(:query, :"apiKey", api_key)
    |> add_param(:query, :"outputFormat", output_format)
    |> add_optional_params(optional_params, opts)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 200, []}
    ])
  end

  @doc """
  Get export link

  ## Parameters

  - connection (MailSlurpAPI.Connection): Connection to server
  - export_type (String.t): 
  - export_options (ExportOptions): 
  - opts (KeywordList): [optional] Optional parameters
    - :api_key (String.t): 
  ## Returns

  {:ok, %MailSlurpAPI.Model.ExportLink{}} on success
  {:error, info} on failure
  """
  @spec get_export_link(Tesla.Env.client, String.t, MailSlurpAPI.Model.ExportOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.ExportLink.t} | {:error, Tesla.Env.t}
  def get_export_link(connection, export_type, export_options, opts \\ []) do
    optional_params = %{
      :"apiKey" => :query
    }
    %{}
    |> method(:post)
    |> url("/export")
    |> add_param(:query, :"exportType", export_type)
    |> add_param(:body, :body, export_options)
    |> add_optional_params(optional_params, opts)
    |> Enum.into([])
    |> (&Connection.request(connection, &1)).()
    |> evaluate_response([
      { 200, %MailSlurpAPI.Model.ExportLink{}}
    ])
  end
end