From 0a1a63fdd9bcff59dfa4f748136854e76120239c Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 16 Mar 2024 19:44:46 -0700 Subject: [PATCH] Added Option to delete a page --- lib/cursif_web/resolvers/pages.ex | 10 ++++++++++ lib/cursif_web/schemas/page.ex | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/cursif_web/resolvers/pages.ex b/lib/cursif_web/resolvers/pages.ex index c2e5c0a..6dafb41 100644 --- a/lib/cursif_web/resolvers/pages.ex +++ b/lib/cursif_web/resolvers/pages.ex @@ -28,6 +28,16 @@ defmodule CursifWeb.Resolvers.Pages do end end + @spec delete_page(map(), map()) :: {:ok, Page.t()} | {:error, atom()} + def delete_page(%{id: id}, %{context: %{current_user: current_user}}) do + page = Pages.get_page!(id) + + case Pages.delete_page(page) do + {:ok, page} -> {:ok, page} + {:error, changeset} -> {:error, changeset} + end + end + # Perhaps it should be defined in the context rather than here @spec get_parent(map(), map()) :: {:ok, Page.t()} | {:error, atom()} def get_parent(%{parent_id: parent_id, parent_type: "page"}, _context) do diff --git a/lib/cursif_web/schemas/page.ex b/lib/cursif_web/schemas/page.ex index 0070fd6..89e98f5 100644 --- a/lib/cursif_web/schemas/page.ex +++ b/lib/cursif_web/schemas/page.ex @@ -16,6 +16,8 @@ defmodule CursifWeb.Schemas.Page do @desc "Collection of mutations" object :page_mutations do + + @desc "Create a page" field :create_page, :page do arg(:title, non_null(:string)) arg(:content, :string) @@ -25,6 +27,7 @@ defmodule CursifWeb.Schemas.Page do resolve(&Pages.create_page/2) end + @desc "Update a page" field :update_page, :page do arg(:id, non_null(:id)) arg(:title, :string) @@ -34,5 +37,12 @@ defmodule CursifWeb.Schemas.Page do resolve(&Pages.update_page/2) end + + @desc "Delete a page" + field :delete_page, :page do + arg(:id, non_null(:id)) + + resolve(&Pages.delete_page/2) + end end end