# 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.SmsController do
@moduledoc """
API calls for all endpoints tagged `SmsController`.
"""
alias MailSlurpAPI.Connection
import MailSlurpAPI.RequestBuilder
@doc """
Delete SMS message.
Delete an SMS message
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- sms_id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_sms_message(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_sms_message(connection, sms_id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/sms/#{sms_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false}
])
end
@doc """
Delete all SMS messages
Delete all SMS messages or all messages for a given phone number
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :phone_number_id (String.t):
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_sms_messages(Tesla.Env.client, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_sms_messages(connection, opts \\ []) do
optional_params = %{
:"phoneNumberId" => :query
}
%{}
|> method(:delete)
|> url("/sms")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false}
])
end
@doc """
Get SMS content including body. Expects SMS to exist by ID. For SMS that may not have arrived yet use the WaitForController.
Returns a SMS summary object with content.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- sms_id (String.t):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.SmsDto{}} on success
{:error, info} on failure
"""
@spec get_sms_message(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.SmsDto.t} | {:error, Tesla.Env.t}
def get_sms_message(connection, sms_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/sms/#{sms_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.SmsDto{}}
])
end
@doc """
Get all SMS messages in all phone numbers in paginated form. .
By default returns all SMS messages across all phone numbers sorted by ascending created at date. Responses are paginated. You can restrict results to a list of phone number IDs. You can also filter out read messages
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :phone_number (String.t): Optional receiving phone number to filter SMS messages for
- :page (integer()): Optional page index in SMS list pagination
- :size (integer()): Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results
- :sort (String.t): Optional createdAt sort direction ASC or DESC
- :unread_only (boolean()): Optional filter for unread SMS only. All SMS are considered unread until they are viewed in the dashboard or requested directly
- :since (DateTime.t): Optional filter SMSs received after given date time
- :before (DateTime.t): Optional filter SMSs received before given date time
## Returns
{:ok, %MailSlurpAPI.Model.PageSmsProjection{}} on success
{:error, info} on failure
"""
@spec get_sms_messages_paginated(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageSmsProjection.t} | {:error, Tesla.Env.t}
def get_sms_messages_paginated(connection, opts \\ []) do
optional_params = %{
:"phoneNumber" => :query,
:"page" => :query,
:"size" => :query,
:"sort" => :query,
:"unreadOnly" => :query,
:"since" => :query,
:"before" => :query
}
%{}
|> method(:get)
|> url("/sms")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageSmsProjection{}}
])
end
end