X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Factivity.ex;h=c5b51474269fb7afd76494cdf003c512db472752;hb=a079ec3a3cdfd42d2cbd51c7698c2c87828e5778;hp=12601b4af7ce6566e06d0ffb944be69152a3e7d5;hpb=ca9e6ffc554f7bf82cfb2c2093a0fcd283349f46;p=akkoma diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 12601b4af..c5b514742 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -367,9 +367,24 @@ defmodule Pleroma.Activity do |> Repo.all() end + def follow_activity(%User{ap_id: ap_id}, %User{ap_id: followed_ap_id}) do + Queries.by_type("Follow") + |> where([a], a.actor == ^ap_id) + |> where([a], fragment("?->>'object' = ?", a.data, ^followed_ap_id)) + |> where([a], fragment("?->>'state'", a.data) in ["pending", "accept"]) + |> Repo.one() + end + def restrict_deactivated_users(query) do query - |> join(:inner_lateral, [activity], active in fragment("SELECT is_active from users WHERE ap_id = ? AND is_active = TRUE", activity.actor)) + |> join( + :inner_lateral, + [activity], + active in fragment( + "SELECT is_active from users WHERE ap_id = ? AND is_active = TRUE", + activity.actor + ) + ) end defdelegate search(user, query, options \\ []), to: Pleroma.Search.DatabaseSearch