This repository was archived by the owner on Nov 8, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +20
-23
lines changed
lib/groupher_server_web/schema
test/groupher_server_web/mutation/cms Expand file tree Collapse file tree 5 files changed +20
-23
lines changed Original file line number Diff line number Diff line change @@ -84,4 +84,20 @@ defmodule GroupherServerWeb.Schema.Helper.Mutations do
8484 end
8585 end
8686 end
87+
88+ # TODO: if post belongs to multi communities, unset instead delete
89+ defmacro article_delete_mutation ( thread ) do
90+ quote do
91+ @ desc unquote ( "delete a #{ thread } , not delete" )
92+ field unquote ( :"delete_#{ thread } " ) , unquote ( thread ) do
93+ arg ( :id , non_null ( :id ) )
94+
95+ middleware ( M.Authorize , :login )
96+ middleware ( M.PassportLoader , source: unquote ( thread ) )
97+ middleware ( M.Passport , claim: unquote ( "owner;cms->c?->#{ to_string ( thread ) } .delete" ) )
98+
99+ resolve ( & R.CMS . delete_content / 3 )
100+ end
101+ end
102+ end
87103end
Original file line number Diff line number Diff line change @@ -74,17 +74,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Job do
7474 article_upvote_mutation ( :job )
7575 article_pin_mutation ( :job )
7676 article_trash_mutation ( :job )
77+ article_delete_mutation ( :job )
7778 #############
78-
79- @ desc "delete a job"
80- field :delete_job , :job do
81- arg ( :id , non_null ( :id ) )
82-
83- middleware ( M.Authorize , :login )
84- middleware ( M.PassportLoader , source: :job )
85- middleware ( M.Passport , claim: "owner;cms->c?->job.delete" )
86-
87- resolve ( & R.CMS . delete_content / 3 )
88- end
8979 end
9080end
Original file line number Diff line number Diff line change @@ -48,18 +48,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Post do
4848 article_upvote_mutation ( :post )
4949 article_pin_mutation ( :post )
5050 article_trash_mutation ( :post )
51+ article_delete_mutation ( :post )
5152 #############
52-
53- @ desc "delete a cms/post"
54- # TODO: if post belongs to multi communities, unset instead delete
55- field :delete_post , :post do
56- arg ( :id , non_null ( :id ) )
57-
58- middleware ( M.Authorize , :login )
59- middleware ( M.PassportLoader , source: :post )
60- middleware ( M.Passport , claim: "owner;cms->c?->post.delete" )
61-
62- resolve ( & R.CMS . delete_content / 3 )
63- end
6453 end
6554end
Original file line number Diff line number Diff line change @@ -282,6 +282,7 @@ defmodule GroupherServer.Test.Mutation.Job do
282282 }
283283 }
284284 """
285+ @ tag :wip2
285286 test "can delete a job by job's owner" , ~m( owner_conn job) a do
286287 deleted = owner_conn |> mutation_result ( @ query , % { id: job . id } , "deleteJob" )
287288
Original file line number Diff line number Diff line change @@ -142,6 +142,7 @@ defmodule GroupherServer.Test.Mutation.Post do
142142 }
143143 }
144144 """
145+ @ tag :wip2
145146 test "delete a post by post's owner" , ~m( owner_conn post) a do
146147 deleted = owner_conn |> mutation_result ( @ query , % { id: post . id } , "deletePost" )
147148
You can’t perform that action at this time.
0 commit comments