# 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.Groups do
@moduledoc """
API calls for all endpoints tagged `Groups`.
"""
alias PlacetelAPI.Connection
import PlacetelAPI.RequestBuilder
@doc """
Delete a group
Delete a group by its ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): Group ID
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Group.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec delete_groups_id(Tesla.Env.client(), integer(), keyword()) ::
{:ok, PlacetelAPI.Model.Group.t()} | {:error, Tesla.Env.t()}
def delete_groups_id(connection, id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/groups/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %PlacetelAPI.Model.Group{}}
])
end
@doc """
Fetch all groups
Fetch a list of all groups
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:"filter[name]"` (String.t):
- `:"filter[description]"` (String.t):
- `:"filter[type]"` (String.t):
- `:page` (integer()): Page of results to fetch.
- `:per_page` (integer()): Number of results to return per page.
### Returns
- `{:ok, [%Group{}, ...]}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_groups(Tesla.Env.client(), keyword()) ::
{:ok, list(PlacetelAPI.Model.Group.t())} | {:error, Tesla.Env.t()}
def get_groups(connection, opts \\ []) do
optional_params = %{
:"filter[name]" => :query,
:"filter[description]" => :query,
:"filter[type]" => :query,
:page => :query,
:per_page => :query
}
request =
%{}
|> method(:get)
|> url("/groups")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, [%PlacetelAPI.Model.Group{}]}
])
end
@doc """
Fetch a group
Fetch a groups by its ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): Group ID
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Group.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_groups_id(Tesla.Env.client(), integer(), keyword()) ::
{:ok, PlacetelAPI.Model.Group.t()} | {:error, Tesla.Env.t()}
def get_groups_id(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/groups/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %PlacetelAPI.Model.Group{}}
])
end
@doc """
Create a group
Create a new group
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `groups` (PostGroups):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Group.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec post_groups(Tesla.Env.client(), PlacetelAPI.Model.PostGroups.t(), keyword()) ::
{:ok, PlacetelAPI.Model.Group.t()} | {:error, Tesla.Env.t()}
def post_groups(connection, groups, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/groups")
|> add_param(:body, :body, groups)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, %PlacetelAPI.Model.Group{}}
])
end
@doc """
Update a group
Update a group by its ID
### Parameters
- `connection` (PlacetelAPI.Connection): Connection to server
- `id` (integer()): Group ID
- `groups` (PutGroups):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, PlacetelAPI.Model.Group.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec put_groups_id(Tesla.Env.client(), integer(), PlacetelAPI.Model.PutGroups.t(), keyword()) ::
{:ok, PlacetelAPI.Model.Group.t()} | {:error, Tesla.Env.t()}
def put_groups_id(connection, id, groups, _opts \\ []) do
request =
%{}
|> method(:put)
|> url("/groups/#{id}")
|> add_param(:body, :body, groups)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, %PlacetelAPI.Model.Group{}}
])
end
end