# NOTE: This file is auto generated by OpenAPI Generator 6.3.0-SNAPSHOT (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule PlacetelAPI.Api.Contacts do
@moduledoc """
API calls for all endpoints tagged `Contacts`.
"""
alias PlacetelAPI.Connection
import PlacetelAPI.RequestBuilder
@doc """
Deletes a contact
Deletes a contact by its ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): Contact ID
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec delete_contacts_id(Tesla.Env.client(), integer(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def delete_contacts_id(connection, id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/contacts/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false}
])
end
@doc """
Get all contacts
Provides a list of all contacts
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:"filter[speeddial]"` (integer()):
- `:"filter[first_name]"` (String.t):
- `:"filter[last_name]"` (String.t):
- `:"filter[company]"` (String.t):
- `:"filter[email]"` (String.t):
- `:"filter[email_work]"` (String.t):
- `:"filter[phone_work]"` (String.t):
- `:"filter[mobile_work]"` (String.t):
- `:"filter[phone]"` (String.t):
- `:"filter[mobile]"` (String.t):
- `:"filter[blocked]"` (boolean()):
- `:"search[number]"` (String.t):
- `:page` (integer()): Page of results to fetch.
- `:per_page` (integer()): Number of results to return per page.
### Returns
- `{:ok, [%Contact{}, ...]}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_contacts(Tesla.Env.client(), keyword()) ::
{:ok, list(PlacetelAPI.Model.Contact.t())} | {:error, Tesla.Env.t()}
def get_contacts(connection, opts \\ []) do
optional_params = %{
:"filter[speeddial]" => :query,
:"filter[first_name]" => :query,
:"filter[last_name]" => :query,
:"filter[company]" => :query,
:"filter[email]" => :query,
:"filter[email_work]" => :query,
:"filter[phone_work]" => :query,
:"filter[mobile_work]" => :query,
:"filter[phone]" => :query,
:"filter[mobile]" => :query,
:"filter[blocked]" => :query,
:"search[number]" => :query,
:page => :query,
:per_page => :query
}
request =
%{}
|> method(:get)
|> url("/contacts")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, [%PlacetelAPI.Model.Contact{}]}
])
end
@doc """
Retrieve a contact
Fetches a contact by its ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): ID of a contact
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Contact.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_contacts_id(Tesla.Env.client(), integer(), keyword()) ::
{:ok, PlacetelAPI.Model.Contact.t()} | {:error, Tesla.Env.t()}
def get_contacts_id(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/contacts/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %PlacetelAPI.Model.Contact{}}
])
end
@doc """
Create a contact
Creates a contact
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `contacts` (PostContacts):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Contact.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec post_contacts(Tesla.Env.client(), PlacetelAPI.Model.PostContacts.t(), keyword()) ::
{:ok, PlacetelAPI.Model.Contact.t()} | {:error, Tesla.Env.t()}
def post_contacts(connection, contacts, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/contacts")
|> add_param(:body, :body, contacts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, %PlacetelAPI.Model.Contact{}}
])
end
@doc """
Update a contact
Updates a contact for a given ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): Contact ID
- `contacts` (PutContacts):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Contact.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec put_contacts_id(
Tesla.Env.client(),
integer(),
PlacetelAPI.Model.PutContacts.t(),
keyword()
) :: {:ok, PlacetelAPI.Model.Contact.t()} | {:error, Tesla.Env.t()}
def put_contacts_id(connection, id, contacts, _opts \\ []) do
request =
%{}
|> method(:put)
|> url("/contacts/#{id}")
|> add_param(:body, :body, contacts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %PlacetelAPI.Model.Contact{}}
])
end
end