defmodule Clacks.Worker.Federate do use Oban.Worker, queue: :federate alias Clacks.{Repo, Activity, Actor, ActivityPub} @impl Oban.Worker require Logger def perform(%{"id" => activity_id, "actor_id" => actor_id}, _job) do activity = Repo.get(Activity, activity_id) actor = Repo.get(Actor, actor_id) case ActivityPub.Federator.federate_to_involved(activity, actor) do :ok -> :ok {:error, reason} -> Logger.error("Error federating '#{activity_id}' to '#{actor_id}': #{inspect(reason)}") {:error, reason} end end end