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

Commit ec9494f

Browse files
committed
refactor(create-article): remove old ids arg in GQ workflow
1 parent d466c75 commit ec9494f

File tree

12 files changed

+91
-40
lines changed

12 files changed

+91
-40
lines changed

lib/groupher_server/cms/delegates/article_curd.ex

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,9 +430,6 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
430430

431431
defp add_rich_text_attrs(attrs), do: attrs
432432

433-
# except Job, other article will just pass, should use set_article_tags function instead
434-
# defp exec_update_tags(_, _tags_ids), do: {:ok, :pass}
435-
436433
defp update_viewed_user_list(%{meta: nil} = article, user_id) do
437434
new_ids = Enum.uniq([user_id] ++ @default_article_meta.viewed_user_ids)
438435
meta = @default_article_meta |> Map.merge(%{viewed_user_ids: new_ids})

lib/groupher_server/cms/delegates/article_tag.ex

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,10 @@ defmodule GroupherServer.CMS.Delegate.ArticleTag do
7272
end
7373

7474
# check if the tag to be set is in same community & thread
75-
defp is_article_tag_in_some_thread?(article_tags, filter) do
75+
defp is_article_tag_in_some_thread?(article_tag_ids, filter) do
7676
with {:ok, paged_article_tags} <- paged_article_tags(filter) do
7777
domain_tags_ids = Enum.map(paged_article_tags.entries, &to_string(&1.id))
78-
cur_tags_ids = Enum.map(article_tags, &to_string(&1.id))
79-
80-
Enum.all?(cur_tags_ids, &Enum.member?(domain_tags_ids, &1))
78+
Enum.all?(article_tag_ids, &Enum.member?(domain_tags_ids, &1))
8179
end
8280
end
8381

@@ -86,15 +84,11 @@ defmodule GroupherServer.CMS.Delegate.ArticleTag do
8684
8785
used for create article with article_tags in args
8886
"""
89-
def set_article_tags(%Community{id: cid}, thread, article, %{article_tags: article_tags}) do
87+
def set_article_tags(%Community{id: cid}, thread, article, %{article_tags: article_tag_ids}) do
9088
check_filter = %{page: 1, size: 100, community_id: cid, thread: thread}
9189

92-
with true <- is_article_tag_in_some_thread?(article_tags, check_filter) do
93-
Enum.each(article_tags, fn article_tag ->
94-
set_article_tag(thread, article, article_tag.id)
95-
end)
96-
97-
{:ok, :pass}
90+
with true <- is_article_tag_in_some_thread?(article_tag_ids, check_filter) do
91+
Enum.each(article_tag_ids, &set_article_tag(thread, article, &1)) |> done
9892
else
9993
false -> raise_error(:invalid_domain_tag, "tag not in same community & thread")
10094
end

lib/groupher_server_web/schema/Helper/metrics.ex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ defmodule GroupherServerWeb.Schema.Helper.Metrics do
2727
pagination_fields()
2828
end
2929

30-
input_object :ids do
31-
field(:id, :id)
32-
end
33-
3430
input_object :common_paged_filter do
3531
pagination_args()
3632
field(:sort, :inserted_sort_enum, default_value: :desc_inserted)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Blog do
1515
arg(:community_id, non_null(:id))
1616
arg(:link_addr, :string)
1717
arg(:thread, :thread, default_value: :blog)
18-
arg(:article_tags, list_of(:ids))
18+
arg(:article_tags, list_of(:id))
1919

2020
middleware(M.Authorize, :login)
2121
middleware(M.PublishThrottle)
@@ -34,7 +34,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Blog do
3434

3535
arg(:company, :string)
3636
arg(:company_link, :string)
37-
arg(:article_tags, list_of(:ids))
37+
arg(:article_tags, list_of(:id))
3838

3939
# ...
4040

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Job do
2121
arg(:copy_right, :string)
2222

2323
arg(:thread, :thread, default_value: :job)
24-
arg(:article_tags, list_of(:ids))
24+
arg(:article_tags, list_of(:id))
2525

2626
middleware(M.Authorize, :login)
2727
middleware(M.PublishThrottle)
@@ -42,7 +42,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Job do
4242

4343
arg(:company, :string)
4444
arg(:company_link, :string)
45-
arg(:article_tags, list_of(:ids))
45+
arg(:article_tags, list_of(:id))
4646

4747
# ...
4848

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Post do
1717
arg(:copy_right, :string)
1818
arg(:community_id, non_null(:id))
1919
arg(:thread, :thread, default_value: :post)
20-
arg(:article_tags, list_of(:ids))
20+
arg(:article_tags, list_of(:id))
2121

2222
middleware(M.Authorize, :login)
2323
# middleware(M.PublishThrottle)
@@ -34,7 +34,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Post do
3434
arg(:digest, :string)
3535
arg(:copy_right, :string)
3636
arg(:link_addr, :string)
37-
arg(:article_tags, list_of(:ids))
37+
arg(:article_tags, list_of(:id))
3838

3939
middleware(M.Authorize, :login)
4040
middleware(M.PassportLoader, source: :post)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ defmodule GroupherServerWeb.Schema.CMS.Mutations.Repo do
3131

3232
arg(:community_id, non_null(:id))
3333
arg(:thread, :thread, default_value: :repo)
34-
arg(:article_tags, list_of(:ids))
34+
arg(:article_tags, list_of(:id))
3535

3636
middleware(M.Authorize, :login)
3737
middleware(M.PublishThrottle)

test/groupher_server_web/mutation/accounts/mailbox_test.exs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defmodule GroupherServer.Test.Query.Accounts.Mailbox do
1+
defmodule GroupherServer.Test.Mutaion.Accounts.Mailbox do
22
use GroupherServer.TestTools
33

44
alias GroupherServer.Delivery
@@ -30,7 +30,7 @@ defmodule GroupherServer.Test.Query.Accounts.Mailbox do
3030
mention = mentions.entries |> List.first()
3131

3232
variables = %{ids: [mention.id], type: "MENTION"}
33-
result = user_conn |> mutation_result(@query, variables, "markRead")
33+
user_conn |> mutation_result(@query, variables, "markRead")
3434

3535
{:ok, mentions} = Delivery.fetch(:mention, user, %{page: 1, size: 10, read: true})
3636
mention = mentions.entries |> List.first()
@@ -44,7 +44,7 @@ defmodule GroupherServer.Test.Query.Accounts.Mailbox do
4444
notify = notifications.entries |> List.first()
4545

4646
variables = %{ids: [notify.id], type: "NOTIFICATION"}
47-
result = user_conn |> mutation_result(@query, variables, "markRead")
47+
user_conn |> mutation_result(@query, variables, "markRead")
4848

4949
{:ok, notifications} = Delivery.fetch(:notification, user, %{page: 1, size: 10, read: true})
5050
notify = notifications.entries |> List.first()
@@ -68,7 +68,7 @@ defmodule GroupherServer.Test.Query.Accounts.Mailbox do
6868
assert mentions.total_count == 2
6969

7070
variables = %{type: "MENTION"}
71-
result = user_conn |> mutation_result(@query, variables, "markReadAll")
71+
user_conn |> mutation_result(@query, variables, "markReadAll")
7272

7373
{:ok, mentions} = Delivery.fetch(:mention, user, %{page: 1, size: 10, read: true})
7474
assert mentions.total_count == 2
@@ -81,7 +81,7 @@ defmodule GroupherServer.Test.Query.Accounts.Mailbox do
8181
assert notifications.total_count == 1
8282

8383
variables = %{type: "NOTIFICATION"}
84-
result = user_conn |> mutation_result(@query, variables, "markReadAll")
84+
user_conn |> mutation_result(@query, variables, "markReadAll")
8585

8686
{:ok, notifications} = Delivery.fetch(:notification, user, %{page: 1, size: 10, read: true})
8787
assert notifications.total_count == 1

test/groupher_server_web/mutation/cms/articles/blog_test.exs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ defmodule GroupherServer.Test.Mutation.Articles.Blog do
99
setup do
1010
{:ok, blog} = db_insert(:blog)
1111
{:ok, user} = db_insert(:user)
12+
{:ok, community} = db_insert(:community)
1213

1314
guest_conn = simu_conn(:guest)
1415
user_conn = simu_conn(:user)
1516
owner_conn = simu_conn(:owner, blog)
1617

17-
{:ok, ~m(user_conn guest_conn owner_conn user blog)a}
18+
{:ok, ~m(user_conn guest_conn owner_conn community user blog)a}
1819
end
1920

2021
describe "[mutation blog curd]" do
@@ -25,7 +26,7 @@ defmodule GroupherServer.Test.Mutation.Articles.Blog do
2526
$digest: String!,
2627
$length: Int,
2728
$communityId: ID!,
28-
$articleTags: [Ids]
29+
$articleTags: [Id]
2930
) {
3031
createBlog(
3132
title: $title,
@@ -67,6 +68,21 @@ defmodule GroupherServer.Test.Mutation.Articles.Blog do
6768
assert created["id"] == to_string(found.id)
6869
end
6970

71+
test "create blog with valid tags id list", ~m(user_conn user community)a do
72+
article_tag_attrs = mock_attrs(:article_tag)
73+
{:ok, article_tag} = CMS.create_article_tag(community, :blog, article_tag_attrs, user)
74+
75+
blog_attr = mock_attrs(:blog)
76+
77+
variables =
78+
blog_attr |> Map.merge(%{communityId: community.id, articleTags: [article_tag.id]})
79+
80+
created = user_conn |> mutation_result(@create_blog_query, variables, "createBlog")
81+
{:ok, blog} = ORM.find(Blog, created["id"], preload: :article_tags)
82+
83+
assert exist_in?(%{id: article_tag.id}, blog.article_tags)
84+
end
85+
7086
test "create blog should excape xss attracts" do
7187
{:ok, user} = db_insert(:user)
7288
user_conn = simu_conn(:user, user)

test/groupher_server_web/mutation/cms/articles/job_test.exs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ defmodule GroupherServer.Test.Mutation.Articles.Job do
99
setup do
1010
{:ok, job} = db_insert(:job)
1111
{:ok, user} = db_insert(:user)
12+
{:ok, community} = db_insert(:community)
1213

1314
guest_conn = simu_conn(:guest)
1415
user_conn = simu_conn(:user)
1516
owner_conn = simu_conn(:owner, job)
1617

17-
{:ok, ~m(user_conn guest_conn owner_conn user job)a}
18+
{:ok, ~m(user_conn guest_conn owner_conn user community job)a}
1819
end
1920

2021
describe "[mutation job curd]" do
@@ -26,7 +27,7 @@ defmodule GroupherServer.Test.Mutation.Articles.Job do
2627
$length: Int!,
2728
$communityId: ID!,
2829
$company: String!,
29-
$articleTags: [Ids]
30+
$articleTags: [Id]
3031
) {
3132
createJob(
3233
title: $title,
@@ -50,7 +51,6 @@ defmodule GroupherServer.Test.Mutation.Articles.Job do
5051
}
5152
}
5253
"""
53-
5454
test "create job with valid attrs and make sure author exsit" do
5555
{:ok, user} = db_insert(:user)
5656
user_conn = simu_conn(:user, user)
@@ -70,6 +70,21 @@ defmodule GroupherServer.Test.Mutation.Articles.Job do
7070
assert created["id"] == to_string(found.id)
7171
end
7272

73+
test "create job with valid tags id list.", ~m(user_conn user community)a do
74+
article_tag_attrs = mock_attrs(:article_tag)
75+
{:ok, article_tag} = CMS.create_article_tag(community, :job, article_tag_attrs, user)
76+
77+
job_attr = mock_attrs(:job)
78+
79+
variables =
80+
job_attr |> Map.merge(%{communityId: community.id, articleTags: [article_tag.id]})
81+
82+
created = user_conn |> mutation_result(@create_job_query, variables, "createJob")
83+
{:ok, job} = ORM.find(Job, created["id"], preload: :article_tags)
84+
85+
assert exist_in?(%{id: article_tag.id}, job.article_tags)
86+
end
87+
7388
test "create job should excape xss attracts" do
7489
{:ok, user} = db_insert(:user)
7590
user_conn = simu_conn(:user, user)

0 commit comments

Comments
 (0)