2020-04-20 23:16:02 +00:00
|
|
|
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
|
2021-08-25 20:11:08 +00:00
|
|
|
activity = Repo.get(Activity, activity_id)
|
2020-04-20 23:16:02 +00:00
|
|
|
actor = Repo.get(Actor, actor_id)
|
|
|
|
|
2021-08-26 02:47:08 +00:00
|
|
|
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
|
2020-04-20 23:16:02 +00:00
|
|
|
end
|
|
|
|
end
|