@@ -13,7 +13,7 @@ defmodule Mobilizon.Events.Event do
|
||||
alias Mobilizon.{Addresses, Events, Media, Mention}
|
||||
alias Mobilizon.Addresses.Address
|
||||
|
||||
alias Mobilizon.Conversations.Comment
|
||||
alias Mobilizon.Discussions.Comment
|
||||
|
||||
alias Mobilizon.Events.{
|
||||
EventOptions,
|
||||
|
||||
@@ -7,7 +7,7 @@ defmodule Mobilizon.Events.EventOptions do
|
||||
|
||||
import Ecto.Changeset
|
||||
|
||||
alias Mobilizon.Conversations.CommentModeration
|
||||
alias Mobilizon.Discussions.CommentModeration
|
||||
|
||||
alias Mobilizon.Events.{
|
||||
EventOffer,
|
||||
|
||||
@@ -380,24 +380,19 @@ defmodule Mobilizon.Events do
|
||||
@doc """
|
||||
Lists public events for the actor, with all associations loaded.
|
||||
"""
|
||||
@spec list_public_events_for_actor(Actor.t(), integer | nil, integer | nil) ::
|
||||
{:ok, [Event.t()], integer}
|
||||
def list_public_events_for_actor(%Actor{id: actor_id}, page \\ nil, limit \\ nil) do
|
||||
events =
|
||||
actor_id
|
||||
|> event_for_actor_query()
|
||||
|> filter_public_visibility()
|
||||
|> filter_draft()
|
||||
|> preload_for_event()
|
||||
|> Page.paginate(page, limit)
|
||||
|> Repo.all()
|
||||
@spec list_public_events_for_actor(Actor.t(), integer | nil, integer | nil) :: Page.t()
|
||||
def list_public_events_for_actor(actor, page \\ nil, limit \\ nil)
|
||||
|
||||
events_count =
|
||||
actor_id
|
||||
|> count_events_for_actor_query()
|
||||
|> Repo.one()
|
||||
def list_public_events_for_actor(%Actor{type: :Group} = group, page, limit),
|
||||
do: list_organized_events_for_group(group, page, limit)
|
||||
|
||||
{:ok, events, events_count}
|
||||
def list_public_events_for_actor(%Actor{id: actor_id}, page, limit) do
|
||||
actor_id
|
||||
|> event_for_actor_query()
|
||||
|> filter_public_visibility()
|
||||
|> filter_draft()
|
||||
|> preload_for_event()
|
||||
|> Page.build_page(page, limit)
|
||||
end
|
||||
|
||||
@spec list_organized_events_for_actor(Actor.t(), integer | nil, integer | nil) :: Page.t()
|
||||
@@ -1321,15 +1316,6 @@ defmodule Mobilizon.Events do
|
||||
)
|
||||
end
|
||||
|
||||
@spec count_events_for_actor_query(integer | String.t()) :: Ecto.Query.t()
|
||||
defp count_events_for_actor_query(actor_id) do
|
||||
from(
|
||||
e in Event,
|
||||
select: count(e.id),
|
||||
where: e.organizer_actor_id == ^actor_id
|
||||
)
|
||||
end
|
||||
|
||||
@spec count_local_events_query :: Ecto.Query.t()
|
||||
defp count_local_events_query do
|
||||
from(e in Event, select: count(e.id), where: e.local == ^true)
|
||||
|
||||
@@ -19,7 +19,7 @@ defmodule Mobilizon.Events.Participant do
|
||||
url: String.t(),
|
||||
event: Event.t(),
|
||||
actor: Actor.t(),
|
||||
metadata: Map.t()
|
||||
metadata: map()
|
||||
}
|
||||
|
||||
@required_attrs [:url, :role, :event_id, :actor_id]
|
||||
|
||||
Reference in New Issue
Block a user