@@ -31,6 +31,20 @@ defmodule MobilizonWeb.Resolvers.Event do
|
||||
{:error, :events_max_limit_reached}
|
||||
end
|
||||
|
||||
def find_event(
|
||||
_parent,
|
||||
%{uuid: uuid},
|
||||
%{context: %{current_user: %User{id: user_id}}} = _resolution
|
||||
) do
|
||||
case {:has_event, Mobilizon.Events.get_own_event_by_uuid_with_preload(uuid, user_id)} do
|
||||
{:has_event, %Event{} = event} ->
|
||||
{:ok, Map.put(event, :organizer_actor, Person.proxify_pictures(event.organizer_actor))}
|
||||
|
||||
{:has_event, _} ->
|
||||
{:error, "Event with UUID #{uuid} not found"}
|
||||
end
|
||||
end
|
||||
|
||||
def find_event(_parent, %{uuid: uuid}, _resolution) do
|
||||
case {:has_event, Mobilizon.Events.get_public_event_by_uuid_with_preload(uuid)} do
|
||||
{:has_event, %Event{} = event} ->
|
||||
@@ -264,6 +278,9 @@ defmodule MobilizonWeb.Resolvers.Event do
|
||||
else
|
||||
{:is_owned, nil} ->
|
||||
{:error, "Organizer actor id is not owned by the user"}
|
||||
|
||||
{:error, %Ecto.Changeset{} = error} ->
|
||||
{:error, error}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -243,6 +243,19 @@ defmodule MobilizonWeb.Resolvers.User do
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns the list of draft events for the current user
|
||||
"""
|
||||
def user_drafted_events(%User{id: user_id}, args, %{
|
||||
context: %{current_user: %User{id: logged_user_id}}
|
||||
}) do
|
||||
with {:same_user, true} <- {:same_user, user_id == logged_user_id},
|
||||
events <-
|
||||
Events.list_drafts_for_user(user_id, Map.get(args, :page), Map.get(args, :limit)) do
|
||||
{:ok, events}
|
||||
end
|
||||
end
|
||||
|
||||
def change_password(_parent, %{old_password: old_password, new_password: new_password}, %{
|
||||
context: %{current_user: %User{password_hash: old_password_hash} = user}
|
||||
}) do
|
||||
|
||||
Reference in New Issue
Block a user