|> Repo.all()
end
- def restrict_deactivated_users(query) do
- deactivated_users_query = from(u in User.Query.build(%{deactivated: true}), select: u.ap_id)
+ 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
- from(activity in query, where: activity.actor not in subquery(deactivated_users_query))
+ 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
+ )
+ )
end
defdelegate search(user, query, options \\ []), to: Pleroma.Search.DatabaseSearch