Current section
Files
Jump to
Current section
Files
lib/campaign_flow/client/signatories.ex
defmodule CampaignFlow.Client.Signatories do
@moduledoc """
Signatory resource operations for the Campaign Flow API.
"""
alias CampaignFlow.Client
alias CampaignFlow.Client.Request
@doc """
Lists all signatories.
## Options
* `:page` - Page number for pagination
* `:per_page` - Number of items per page
## Examples
{:ok, signatories} = CampaignFlow.Client.Signatories.list(client)
"""
@spec list(Client.t(), keyword()) :: {Client.Request.response(), Client.t()}
def list(client, params \\ []) do
Request.get(client, "/signatories", params: params)
end
@doc """
Retrieves a specific signatory by ID.
## Examples
{:ok, signatory} = CampaignFlow.Client.Signatories.get(client, 123)
"""
@spec get(Client.t(), integer()) :: {Client.Request.response(), Client.t()}
def get(client, id) do
Request.get(client, "/signatories/#{id}")
end
@doc """
Adds a new signatory.
## Examples
{:ok, signatory} = CampaignFlow.Client.Signatories.create(client, %{
name: "John Doe",
email: "john@example.com"
})
"""
@spec create(Client.t(), map()) :: {Client.Request.response(), Client.t()}
def create(client, params) do
Request.post(client, "/signatories", json: params)
end
@doc """
Updates an existing signatory.
## Examples
{:ok, signatory} = CampaignFlow.Client.Signatories.update(client, 123, %{
name: "Jane Doe"
})
"""
@spec update(Client.t(), integer(), map()) :: {Client.Request.response(), Client.t()}
def update(client, id, params) do
Request.put(client, "/signatories/#{id}", json: params)
end
@doc """
Deletes a signatory.
## Examples
{:ok, response} = CampaignFlow.Client.Signatories.delete(client, 123)
"""
@spec delete(Client.t(), integer()) :: {Client.Request.response(), Client.t()}
def delete(client, id) do
Request.delete(client, "/signatories/#{id}")
end
end