Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 6 additions & 12 deletions lib/groupher_server_web/resolvers/accounts_resolver.ex
Original file line number Diff line number Diff line change
Expand Up @@ -197,24 +197,18 @@ defmodule GroupherServerWeb.Resolvers.Accounts do
end

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

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

# def editable_communities(_root, ~m(filter)a, %{
# context: %{cur_user: %{cur_passport: %{"cms" => %{"root" => true}}} = _cur_user}
# }) do
# CMS.Community |> ORM.find_all(filter)
# end

def editable_communities(root, ~m(filter)a, _info) do
Accounts.paged_editable_communities(%User{id: root.id}, filter)
end

# TODO: refactor
def get_mail_box_status(_root, _args, %{context: %{cur_user: cur_user}}) do
Accounts.mailbox_status(cur_user)
Expand Down
2 changes: 1 addition & 1 deletion lib/groupher_server_web/schema/account/account_queries.ex
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ defmodule GroupherServerWeb.Schema.Account.Queries do

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

middleware(M.PageSizeProof)
Expand Down
10 changes: 0 additions & 10 deletions lib/groupher_server_web/schema/account/account_types.ex
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,6 @@ defmodule GroupherServerWeb.Schema.Account.Types do

field(:subscribed_communities_count, :integer)

@desc "paged communities which the user it's the editor"
field :editable_communities, :paged_communities do
# arg(:filter, non_null(:paged_filter))
arg(:filter, :paged_filter)

# middleware(M.SeeMe)
middleware(M.PageSizeProof)
resolve(&R.Accounts.editable_communities/3)
end

@desc "get follower users count"
field(:followers_count, :integer)

Expand Down
46 changes: 6 additions & 40 deletions test/groupher_server_web/query/accounts/achievement_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ defmodule GroupherServer.Test.Query.Account.Achievement do

describe "[account editable-communities]" do
@query """
query($userId: ID, $filter: PagedFilter!) {
editableCommunities(userId: $userId, filter: $filter) {
query($login: String, $filter: PagedFilter!) {
editableCommunities(login: $login, filter: $filter) {
entries {
id
logo
Expand All @@ -60,13 +60,15 @@ defmodule GroupherServer.Test.Query.Account.Achievement do
}
}
"""
@tag :wip2
test "can get user's empty editable communities list", ~m(guest_conn user)a do
variables = %{userId: user.id, filter: %{page: 1, size: 20}}
variables = %{login: user.login, filter: %{page: 1, size: 20}}
results = guest_conn |> query_result(@query, variables, "editableCommunities")

assert results |> is_valid_pagination?(:empty)
end

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

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

assert results["totalCount"] == 2
assert results["entries"] |> Enum.any?(&(&1["id"] == to_string(community.id)))
assert results["entries"] |> Enum.any?(&(&1["id"] == to_string(community2.id)))
end

@query """
query($login: String!) {
user(login: $login) {
id
editableCommunities {
entries {
id
logo
title
raw
}
totalCount
}
}
}
"""

test "user can get own editable communities list", ~m(user)a do
user_conn = simu_conn(:user, user)

{:ok, community} = db_insert(:community)
{:ok, community2} = db_insert(:community)

title = "chief editor"
{:ok, _} = CMS.set_editor(community, title, user)
{:ok, _} = CMS.set_editor(community2, title, user)

variables = %{login: user.login, filter: %{page: 1, size: 20}}
results = user_conn |> query_result(@query, variables, "user")
editable_communities = results["editableCommunities"]

assert editable_communities["totalCount"] == 2
assert editable_communities["entries"] |> Enum.any?(&(&1["id"] == to_string(community.id)))
assert editable_communities["entries"] |> Enum.any?(&(&1["id"] == to_string(community2.id)))
end
end

describe "[account follow achieveMent]" do
Expand Down