Add ability to delete an event
This commit is contained in:
@@ -36,7 +36,7 @@ defmodule Mobilizon.Actors.Member do
|
||||
end
|
||||
end
|
||||
|
||||
def is_administrator(%Member{role: 2} = member) do
|
||||
def is_administrator(%Member{role: 2}) do
|
||||
{:is_admin, true}
|
||||
end
|
||||
|
||||
|
||||
@@ -145,12 +145,12 @@ defmodule Mobilizon.Actors.User do
|
||||
{:ok, user}
|
||||
end
|
||||
|
||||
def owns_actor(%User{default_actor_id: default_actor_id} = user, %Actor{id: actor_id})
|
||||
def owns_actor(%User{default_actor_id: default_actor_id}, %Actor{id: actor_id})
|
||||
when default_actor_id == actor_id do
|
||||
{:is_owned, true}
|
||||
end
|
||||
|
||||
def owns_actor(%User{actors: actors} = user, actor_id) do
|
||||
def owns_actor(%User{actors: actors}, actor_id) do
|
||||
case Enum.any?(actors, fn a -> a.id == actor_id end) do
|
||||
true -> {:is_owned, true}
|
||||
_ -> {:is_owned, false}
|
||||
|
||||
@@ -82,4 +82,13 @@ defmodule Mobilizon.Events.Event do
|
||||
:uuid
|
||||
])
|
||||
end
|
||||
|
||||
def can_event_be_managed_by(%Event{organizer_actor_id: organizer_actor_id}, actor_id)
|
||||
when organizer_actor_id == actor_id do
|
||||
{:event_can_be_managed, true}
|
||||
end
|
||||
|
||||
def can_event_be_managed_by(_event, _actor) do
|
||||
{:event_can_be_managed, false}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -103,6 +103,16 @@ defmodule Mobilizon.Events do
|
||||
"""
|
||||
def get_event!(id), do: Repo.get!(Event, id)
|
||||
|
||||
@doc """
|
||||
Gets a single event.
|
||||
"""
|
||||
def get_event(id) do
|
||||
case Repo.get(Event, id) do
|
||||
nil -> {:error, :event_not_found}
|
||||
event -> {:ok, event}
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Gets an event by it's URL
|
||||
"""
|
||||
@@ -311,6 +321,15 @@ defmodule Mobilizon.Events do
|
||||
Repo.delete(event)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deletes a Event.
|
||||
|
||||
Raises an exception if it fails.
|
||||
"""
|
||||
def delete_event!(%Event{} = event) do
|
||||
Repo.delete!(event)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns an `%Ecto.Changeset{}` for tracking event changes.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user