diff options
author | lain <lain@soykaf.club> | 2020-07-03 11:25:12 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-07-03 11:25:12 +0200 |
commit | 59b426ebefd1881181888a5b0e6abe8338b65d3f (patch) | |
tree | 413cc7b2e19d8864bff6d957414938b6fc9f2b08 | |
parent | fa7a0be2252fc52202cf84b6549e2ff2e731c4ff (diff) | |
download | pleroma-59b426ebefd1881181888a5b0e6abe8338b65d3f.tar.gz |
Notification Backfill: Explicitly select the needed fields.
Prevents a crashing migration when we change user fields.
-rw-r--r-- | lib/pleroma/migration_helper/notification_backfill.ex | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/pleroma/migration_helper/notification_backfill.ex b/lib/pleroma/migration_helper/notification_backfill.ex index b3770307a..d260e62ca 100644 --- a/lib/pleroma/migration_helper/notification_backfill.ex +++ b/lib/pleroma/migration_helper/notification_backfill.ex @@ -3,7 +3,6 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MigrationHelper.NotificationBackfill do - alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User @@ -25,18 +24,27 @@ defmodule Pleroma.MigrationHelper.NotificationBackfill do |> type_from_activity() notification - |> Notification.changeset(%{type: type}) + |> Ecto.Changeset.change(%{type: type}) |> Repo.update() end) end + defp get_by_ap_id(ap_id) do + q = + from(u in User, + select: u.id + ) + + Repo.get_by(q, ap_id: ap_id) + end + # This is copied over from Notifications to keep this stable. defp type_from_activity(%{data: %{"type" => type}} = activity) do case type do "Follow" -> accepted_function = fn activity -> - with %User{} = follower <- User.get_by_ap_id(activity.data["actor"]), - %User{} = followed <- User.get_by_ap_id(activity.data["object"]) do + with %User{} = follower <- get_by_ap_id(activity.data["actor"]), + %User{} = followed <- get_by_ap_id(activity.data["object"]) do Pleroma.FollowingRelationship.following?(follower, followed) end end |