Send activity digests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-06-26 15:23:22 +02:00
parent a542f94379
commit 784c607c65
95 changed files with 3259 additions and 2382 deletions

View File

@@ -121,6 +121,32 @@ defmodule Mobilizon.Activities do
|> Page.build_page(page, limit)
end
@spec list_group_activities_for_recap(
integer() | String.t(),
integer() | String.t(),
DateTime.t() | nil
) :: [Activity.t()]
def list_group_activities_for_recap(
group_id,
actor_asking_id,
last_sent_at \\ nil
) do
query =
Activity
|> where([a], a.group_id == ^group_id)
|> join(:inner, [a], m in Member,
on: m.parent_id == a.group_id and m.actor_id == ^actor_asking_id
)
|> where([a, m], a.inserted_at >= m.member_since)
|> order_by(desc: :inserted_at)
|> preload([:author, :group])
query =
if is_nil(last_sent_at), do: query, else: where(query, [a], a.inserted_at >= ^last_sent_at)
Repo.all(query)
end
@doc """
Gets a single activity.