- activity = Repo.one(query)
- {:ok, activity, object}
- true ->
- data = %{
- "type" => "Like",
- "actor" => ap_id,
- "object" => id,
- "to" => [User.ap_followers(user), object.data["actor"]],
- "context" => object.data["context"]
- }
-
- data = if activity_id, do: Map.put(data, "id", activity_id), else: data
-
- {:ok, activity} = insert(data, local)
-
- likes = [ap_id | (object.data["likes"] || [])] |> Enum.uniq
-
- new_data = object.data
- |> Map.put("like_count", length(likes))
- |> Map.put("likes", likes)
-
- changeset = Changeset.change(object, data: new_data)
- {:ok, object} = Repo.update(changeset)
-
- update_object_in_activities(object)
-
- if user.local do
- Pleroma.Web.Federator.enqueue(:publish, activity)
- end
-
- {:ok, activity, object}
+ with data <- %{"to" => to, "type" => "Accept", "actor" => actor, "object" => object},
+ {:ok, activity} <- insert(data, local),
+ :ok <- maybe_federate(activity) do
+ {:ok, activity}