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

Commit 83e1387

Browse files
authored
refactor(user): remove editable_communities in user model (#373)
1 parent f0b4a46 commit 83e1387

File tree

4 files changed

+13
-63
lines changed

4 files changed

+13
-63
lines changed

lib/groupher_server_web/resolvers/accounts_resolver.ex

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -197,24 +197,18 @@ defmodule GroupherServerWeb.Resolvers.Accounts do
197197
end
198198

199199
# paged communities which the user it's the editor
200-
def editable_communities(_root, ~m(user_id filter)a, _info) do
201-
Accounts.paged_editable_communities(%User{id: user_id}, filter)
200+
def editable_communities(_root, ~m(login filter)a, _info) do
201+
with {:ok, user_id} <- Accounts.get_userid_and_cache(login) do
202+
Accounts.paged_editable_communities(%User{id: user_id}, filter)
203+
else
204+
_ -> raise_error(:not_exsit, "#{login} not found")
205+
end
202206
end
203207

204208
def editable_communities(_root, ~m(filter)a, %{context: %{cur_user: cur_user}}) do
205209
Accounts.paged_editable_communities(cur_user, filter)
206210
end
207211

208-
# def editable_communities(_root, ~m(filter)a, %{
209-
# context: %{cur_user: %{cur_passport: %{"cms" => %{"root" => true}}} = _cur_user}
210-
# }) do
211-
# CMS.Community |> ORM.find_all(filter)
212-
# end
213-
214-
def editable_communities(root, ~m(filter)a, _info) do
215-
Accounts.paged_editable_communities(%User{id: root.id}, filter)
216-
end
217-
218212
# TODO: refactor
219213
def get_mail_box_status(_root, _args, %{context: %{cur_user: cur_user}}) do
220214
Accounts.mailbox_status(cur_user)

lib/groupher_server_web/schema/account/account_queries.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ defmodule GroupherServerWeb.Schema.Account.Queries do
129129

130130
@desc "paged communities which the user it's the editor"
131131
field :editable_communities, :paged_communities do
132-
arg(:user_id, :id)
132+
arg(:login, :string)
133133
arg(:filter, non_null(:paged_filter))
134134

135135
middleware(M.PageSizeProof)

lib/groupher_server_web/schema/account/account_types.ex

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,6 @@ defmodule GroupherServerWeb.Schema.Account.Types do
6363

6464
field(:subscribed_communities_count, :integer)
6565

66-
@desc "paged communities which the user it's the editor"
67-
field :editable_communities, :paged_communities do
68-
# arg(:filter, non_null(:paged_filter))
69-
arg(:filter, :paged_filter)
70-
71-
# middleware(M.SeeMe)
72-
middleware(M.PageSizeProof)
73-
resolve(&R.Accounts.editable_communities/3)
74-
end
75-
7666
@desc "get follower users count"
7767
field(:followers_count, :integer)
7868

test/groupher_server_web/query/accounts/achievement_test.exs

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ defmodule GroupherServer.Test.Query.Account.Achievement do
4545

4646
describe "[account editable-communities]" do
4747
@query """
48-
query($userId: ID, $filter: PagedFilter!) {
49-
editableCommunities(userId: $userId, filter: $filter) {
48+
query($login: String, $filter: PagedFilter!) {
49+
editableCommunities(login: $login, filter: $filter) {
5050
entries {
5151
id
5252
logo
@@ -60,13 +60,15 @@ defmodule GroupherServer.Test.Query.Account.Achievement do
6060
}
6161
}
6262
"""
63+
@tag :wip2
6364
test "can get user's empty editable communities list", ~m(guest_conn user)a do
64-
variables = %{userId: user.id, filter: %{page: 1, size: 20}}
65+
variables = %{login: user.login, filter: %{page: 1, size: 20}}
6566
results = guest_conn |> query_result(@query, variables, "editableCommunities")
6667

6768
assert results |> is_valid_pagination?(:empty)
6869
end
6970

71+
@tag :wip2
7072
test "can get user's editable communities list when user is editor", ~m(guest_conn user)a do
7173
{:ok, community} = db_insert(:community)
7274
{:ok, community2} = db_insert(:community)
@@ -75,49 +77,13 @@ defmodule GroupherServer.Test.Query.Account.Achievement do
7577
{:ok, _} = CMS.set_editor(community, title, user)
7678
{:ok, _} = CMS.set_editor(community2, title, user)
7779

78-
variables = %{userId: user.id, filter: %{page: 1, size: 20}}
80+
variables = %{login: user.login, filter: %{page: 1, size: 20}}
7981
results = guest_conn |> query_result(@query, variables, "editableCommunities")
8082

8183
assert results["totalCount"] == 2
8284
assert results["entries"] |> Enum.any?(&(&1["id"] == to_string(community.id)))
8385
assert results["entries"] |> Enum.any?(&(&1["id"] == to_string(community2.id)))
8486
end
85-
86-
@query """
87-
query($login: String!) {
88-
user(login: $login) {
89-
id
90-
editableCommunities {
91-
entries {
92-
id
93-
logo
94-
title
95-
raw
96-
}
97-
totalCount
98-
}
99-
}
100-
}
101-
"""
102-
103-
test "user can get own editable communities list", ~m(user)a do
104-
user_conn = simu_conn(:user, user)
105-
106-
{:ok, community} = db_insert(:community)
107-
{:ok, community2} = db_insert(:community)
108-
109-
title = "chief editor"
110-
{:ok, _} = CMS.set_editor(community, title, user)
111-
{:ok, _} = CMS.set_editor(community2, title, user)
112-
113-
variables = %{login: user.login, filter: %{page: 1, size: 20}}
114-
results = user_conn |> query_result(@query, variables, "user")
115-
editable_communities = results["editableCommunities"]
116-
117-
assert editable_communities["totalCount"] == 2
118-
assert editable_communities["entries"] |> Enum.any?(&(&1["id"] == to_string(community.id)))
119-
assert editable_communities["entries"] |> Enum.any?(&(&1["id"] == to_string(community2.id)))
120-
end
12187
end
12288

12389
describe "[account follow achieveMent]" do

0 commit comments

Comments
 (0)