Broadcast image merges to firehose

This commit is contained in:
mdashlw 2025-02-11 10:01:19 +00:00 committed by GitHub
parent 10616da04f
commit 0c2436a255
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -877,6 +877,12 @@ defmodule Philomena.Images do
def merge_image(multi \\ nil, %Image{} = image, duplicate_of_image, user) do
multi = multi || Multi.new()
image =
Repo.preload(image, [:user, :intensity, :sources, tags: :aliases])
duplicate_of_image =
Repo.preload(duplicate_of_image, [:user, :intensity, :sources, tags: :aliases])
image
|> Image.merge_changeset(duplicate_of_image)
|> hide_image_multi(image, user, multi)
@ -891,11 +897,7 @@ defmodule Philomena.Images do
{:ok, Tags.copy_tags(image, duplicate_of_image)}
end)
|> Multi.run(:migrate_sources, fn repo, %{} ->
{:ok,
migrate_sources(
repo.preload(image, [:sources]),
repo.preload(duplicate_of_image, [:sources])
)}
{:ok, migrate_sources(image, duplicate_of_image)}
end)
|> Multi.run(:migrate_comments, fn _, %{} ->
{:ok, Comments.migrate_comments(image, duplicate_of_image)}
@ -914,6 +916,16 @@ defmodule Philomena.Images do
reindex_image(duplicate_of_image)
Comments.reindex_comments(duplicate_of_image)
PhilomenaWeb.Endpoint.broadcast!(
"firehose",
"image:merge",
%{
image: PhilomenaWeb.Api.Json.ImageView.render("image.json", %{image: image}),
duplicate_of_image:
PhilomenaWeb.Api.Json.ImageView.render("image.json", %{image: duplicate_of_image})
}
)
{:ok, result}
error ->