Refactoring of Events context

This commit is contained in:
miffigriffy
2019-09-13 01:01:17 +02:00
parent e4a446003d
commit e358dcce77
19 changed files with 528 additions and 353 deletions

View File

@@ -4,6 +4,7 @@ defmodule Mobilizon.Events do
"""
import Ecto.Query
import EctoEnum
import Mobilizon.Storage.Ecto
@@ -13,13 +14,62 @@ defmodule Mobilizon.Events do
alias Mobilizon.Storage.{Page, Repo}
alias Mobilizon.Users.User
def data() do
Dataloader.Ecto.new(Repo, query: &query/2)
end
defenum(EventVisibility, :event_visibility, [
:public,
:unlisted,
:restricted,
:private
])
def query(queryable, _params) do
queryable
end
defenum(JoinOptions, :join_options, [
:free,
:restricted,
:invite
])
defenum(EventStatus, :event_status, [
:tentative,
:confirmed,
:cancelled
])
defenum(EventCategory, :event_category, [
:business,
:conference,
:birthday,
:demonstration,
:meeting
])
defenum(CommentVisibility, :comment_visibility, [
:public,
:unlisted,
:private,
:moderated,
:invite
])
defenum(CommentModeration, :comment_moderation, [
:allow_all,
:moderated,
:closed
])
defenum(ParticipantRole, :participant_role, [
:not_approved,
:participant,
:moderator,
:administrator,
:creator
])
@doc false
@spec data :: Dataloader.Ecto.t()
def data, do: Dataloader.Ecto.new(Repo, query: &query/2)
@doc false
@spec query(Ecto.Query.t(), map) :: Ecto.Query.t()
def query(queryable, _params), do: queryable
def get_public_events_for_actor(%Actor{id: actor_id} = _actor, page \\ nil, limit \\ nil) do
query =
@@ -537,6 +587,18 @@ defmodule Mobilizon.Events do
def get_tag(id), do: Repo.get(Tag, id)
def get_tag_by_slug(slug) do
query =
from(
t in Tag,
where: t.slug == ^slug
)
Repo.one(query)
end
@doc """
Get an existing tag or create one
"""
@@ -698,6 +760,9 @@ defmodule Mobilizon.Events do
Repo.all(final_query)
end
alias Mobilizon.Events.Participant
@doc """