Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 0195059

Browse files
committed
refactor(cms-mutations): extract delete mutation
1 parent b156819 commit 0195059

File tree

5 files changed

+20
-23
lines changed

5 files changed

+20
-23
lines changed

lib/groupher_server_web/schema/Helper/mutations.ex

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff 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
87103
end

lib/groupher_server_web/schema/cms/mutations/job.ex

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff 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
9080
end

lib/groupher_server_web/schema/cms/mutations/post.ex

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff 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
6554
end

test/groupher_server_web/mutation/cms/job_test.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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

test/groupher_server_web/mutation/cms/post_test.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)