# 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.ConnectorController do
@moduledoc """
API calls for all endpoints tagged `ConnectorController`.
"""
alias MailSlurpAPI.Connection
import MailSlurpAPI.RequestBuilder
@doc """
Create an inbox connector
Sync emails between external mailboxes and MailSlurp inboxes
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- create_connector_options (CreateConnectorOptions):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.ConnectorDto{}} on success
{:error, info} on failure
"""
@spec create_connector(Tesla.Env.client, MailSlurpAPI.Model.CreateConnectorOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.ConnectorDto.t} | {:error, Tesla.Env.t}
def create_connector(connection, create_connector_options, _opts \\ []) do
%{}
|> method(:post)
|> url("/connectors")
|> add_param(:body, :body, create_connector_options)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.ConnectorDto{}}
])
end
@doc """
Delete an inbox connector
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_connector(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_connector(connection, id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/connectors/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false}
])
end
@doc """
Get all inbox connector sync events
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in connector list pagination
- :size (integer()): Optional page size in connector list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
- :since (DateTime.t): Filter by created at after the given timestamp
- :before (DateTime.t): Filter by created at before the given timestamp
## Returns
{:ok, %MailSlurpAPI.Model.PageConnectorSyncEvents{}} on success
{:error, info} on failure
"""
@spec get_all_connector_sync_events(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageConnectorSyncEvents.t} | {:error, Tesla.Env.t}
def get_all_connector_sync_events(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query,
:"since" => :query,
:"before" => :query
}
%{}
|> method(:get)
|> url("/connectors/events")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageConnectorSyncEvents{}}
])
end
@doc """
Get an inbox connector
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.ConnectorDto{}} on success
{:error, info} on failure
"""
@spec get_connector(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.ConnectorDto.t} | {:error, Tesla.Env.t}
def get_connector(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/connectors/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.ConnectorDto{}}
])
end
@doc """
Get an inbox connector sync event
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.ConnectorSyncEventDto{}} on success
{:error, info} on failure
"""
@spec get_connector_sync_event(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.ConnectorSyncEventDto.t} | {:error, Tesla.Env.t}
def get_connector_sync_event(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/connectors/events/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.ConnectorSyncEventDto{}}
])
end
@doc """
Get an inbox connector sync events
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in connector list pagination
- :size (integer()): Optional page size in connector list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
- :since (DateTime.t): Filter by created at after the given timestamp
- :before (DateTime.t): Filter by created at before the given timestamp
## Returns
{:ok, %MailSlurpAPI.Model.PageConnectorSyncEvents{}} on success
{:error, info} on failure
"""
@spec get_connector_sync_events(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.PageConnectorSyncEvents.t} | {:error, Tesla.Env.t}
def get_connector_sync_events(connection, id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query,
:"since" => :query,
:"before" => :query
}
%{}
|> method(:get)
|> url("/connectors/#{id}/events")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageConnectorSyncEvents{}}
])
end
@doc """
Get inbox connectors
List inbox connectors that sync external emails to MailSlurp inboxes
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in connector list pagination
- :size (integer()): Optional page size in connector list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
- :since (DateTime.t): Filter by created at after the given timestamp
- :before (DateTime.t): Filter by created at before the given timestamp
## Returns
{:ok, %MailSlurpAPI.Model.PageConnector{}} on success
{:error, info} on failure
"""
@spec get_connectors(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageConnector.t} | {:error, Tesla.Env.t}
def get_connectors(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query,
:"since" => :query,
:"before" => :query
}
%{}
|> method(:get)
|> url("/connectors")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageConnector{}}
])
end
@doc """
Sync an inbox connector
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.ConnectorSyncRequestResult{}} on success
{:error, info} on failure
"""
@spec sync_connector(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.ConnectorSyncRequestResult.t} | {:error, Tesla.Env.t}
def sync_connector(connection, id, _opts \\ []) do
%{}
|> method(:post)
|> url("/connectors/#{id}/sync")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.ConnectorSyncRequestResult{}}
])
end
@doc """
Update an inbox connector
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- id (String.t):
- create_connector_options (CreateConnectorOptions):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.ConnectorDto{}} on success
{:error, info} on failure
"""
@spec update_connector(Tesla.Env.client, String.t, MailSlurpAPI.Model.CreateConnectorOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.ConnectorDto.t} | {:error, Tesla.Env.t}
def update_connector(connection, id, create_connector_options, _opts \\ []) do
%{}
|> method(:put)
|> url("/connectors/#{id}")
|> add_param(:body, :body, create_connector_options)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.ConnectorDto{}}
])
end
end