- %Object{} = object <- Object.normalize(activity.data["object"]["id"]) do
- ActivityPub.announce(user, object)
+ true <- Visibility.is_public?(activity) do
+ CommonAPI.repeat(activity.id, user)
+ else
+ error -> format_error(error)
+ end
+ end
+
+ def publish(_), do: {:error, "Not implemented"}
+
+ @spec list() :: {:ok, [%{actor: String.t(), followed_back: boolean()}]} | {:error, any()}
+ def list do
+ with %User{} = user <- get_actor() do
+ accepted =
+ user
+ |> following()
+ |> Enum.map(fn actor -> %{actor: actor, followed_back: true} end)
+
+ without_accept =
+ user
+ |> Pleroma.Activity.following_requests_for_actor()
+ |> Enum.map(fn activity -> %{actor: activity.data["object"], followed_back: false} end)
+ |> Enum.uniq()
+
+ {:ok, accepted ++ without_accept}