# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Activity do
from([a] in query,
left_join: b in Bookmark,
on: b.user_id == ^user.id and b.activity_id == a.id,
+ as: :bookmark,
preload: [bookmark: b]
)
end
from([a] in query,
left_join: r in ReportNote,
on: a.id == r.activity_id,
+ as: :report_note,
preload: [report_notes: r]
)
end
|> Repo.all()
end
+ def follow_requests_outstanding_since?(
+ %User{ap_id: follower_id},
+ %User{ap_id: followee_id},
+ since_datetime
+ ) do
+ followee_id
+ |> Queries.by_object_id()
+ |> Queries.by_type("Follow")
+ |> where([a], a.inserted_at > ^since_datetime)
+ |> where([a], fragment("? ->> 'state' != 'accept'", a.data))
+ |> where([a], a.actor == ^follower_id)
+ |> Repo.exists?()
+ end
+
def restrict_deactivated_users(query) do
deactivated_users =
from(u in User.Query.build(%{deactivated: true}), select: u.ap_id)