+ def with_set_thread_muted_field(query, _), do: query
+
+ def get_by_ap_id(ap_id) do
+ ap_id
+ |> Queries.by_ap_id()
+ |> Repo.one()
+ end
+
+ def get_bookmark(%Activity{} = activity, %User{} = user) do
+ if Ecto.assoc_loaded?(activity.bookmark) do
+ activity.bookmark
+ else
+ Bookmark.get(user.id, activity.id)
+ end
+ end
+
+ def get_bookmark(_, _), do: nil
+
+ def change(struct, params \\ %{}) do
+ struct
+ |> cast(params, [:data, :recipients])
+ |> validate_required([:data])
+ |> unique_constraint(:ap_id, name: :activities_unique_apid_index)
+ end
+
+ def get_by_ap_id_with_object(ap_id) do
+ ap_id
+ |> Queries.by_ap_id()
+ |> with_preloaded_object(:left)
+ |> Repo.one()
+ end
+