Merge pull request #415 from mdashlw/firehose-image-merges

Broadcast image merges to firehose
This commit is contained in:
liamwhite 2025-02-12 21:11:07 -05:00 committed by GitHub
commit f8490085ff
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 ->