Packages

Elixir client for the AgentMail API

Current section

Files

Jump to
agentmail lib agentmail threads.ex
Raw

lib/agentmail/threads.ex

defmodule Agentmail.Threads do
@moduledoc """
Manage email threads within an inbox.
Threads group related messages together (like a conversation).
## Examples
client = Agentmail.client()
inbox_id = "my-agent@agentmail.to"
{:ok, threads} = Agentmail.Threads.list(client, inbox_id)
{:ok, thread} = Agentmail.Threads.get(client, inbox_id, thread_id)
"""
import Agentmail.Request
@doc "Lists threads in an inbox."
def list(%Agentmail{} = client, inbox_id, params \\ %{}) do
request(client, :get, with_query("/inboxes/#{encode(inbox_id)}/threads", params))
end
@doc "Gets a specific thread (includes messages)."
def get(%Agentmail{} = client, inbox_id, thread_id) do
request(client, :get, "/inboxes/#{encode(inbox_id)}/threads/#{encode(thread_id)}")
end
@doc "Updates thread labels."
def update(%Agentmail{} = client, inbox_id, thread_id, params) do
request(
client,
:patch,
"/inboxes/#{encode(inbox_id)}/threads/#{encode(thread_id)}",
params
)
end
@doc "Deletes a thread (first call trashes, second permanently deletes)."
def delete(%Agentmail{} = client, inbox_id, thread_id) do
request(client, :delete, "/inboxes/#{encode(inbox_id)}/threads/#{encode(thread_id)}")
end
end