postland/lib/postland/actors.ex
2024-11-26 19:08:51 -06:00

26 lines
554 B
Elixir

defmodule Postland.Actors do
def inbox(actor_id) do
Map.get(actor(actor_id) || %{}, "inbox")
end
def actor(actor_id) do
result =
Cachex.fetch(:main_cache, "actor:#{actor_id}", fn _key ->
case ActivityPub.fetch_actor(actor_id) do
{:ok, actor} ->
{:commit, actor, expire: :timer.seconds(300)}
nil ->
{:commit, nil, expire: :timer.seconds(300)}
end
end)
case result do
{:commit, actor} ->
actor
{:ok, actor} ->
actor
end
end
end