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