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

Commit fb59a58

Browse files
committed
fix(pagesize middleware): edge case when passed in arg is empty
1 parent 618e058 commit fb59a58

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

lib/mastani_server_web/middleware/pagesize_proof.ex

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,25 @@ defmodule MastaniServerWeb.Middleware.PageSizeProof do
1616
# 3. large size should trigger error
1717
def call(%{errors: errors} = resolution, _) when length(errors) > 0, do: resolution
1818

19-
def call(%{context: %{cur_user: %{customization: customization}}} = resolution, _info)
19+
def call(
20+
%{context: %{cur_user: %{customization: customization}}, arguments: arguments} =
21+
resolution,
22+
_info
23+
)
2024
when not is_nil(customization) do
2125
size = String.to_integer(customization.display_density)
2226

23-
filter = resolution.arguments.filter |> Map.merge(%{size: size})
24-
arguments = resolution.arguments |> Map.merge(%{filter: filter})
27+
case Map.has_key?(arguments, :filter) do
28+
true ->
29+
filter = arguments.filter |> Map.merge(%{size: size})
30+
arguments = arguments |> Map.merge(%{filter: filter})
31+
32+
%{resolution | arguments: sort_desc_by_default(arguments)}
2533

26-
%{resolution | arguments: sort_desc_by_default(arguments)}
34+
false ->
35+
arguments = arguments |> Map.merge(%{filter: %{page: 1, size: size, first: size}})
36+
%{resolution | arguments: arguments}
37+
end
2738
end
2839

2940
def call(resolution, _) do

test/mastani_server_web/query/accounts/account_test.exs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ defmodule MastaniServer.Test.Query.Account.Basic do
2525
views
2626
cmsPassport
2727
cmsPassportString
28+
contributes {
29+
records {
30+
count
31+
date
32+
}
33+
startDate
34+
endDate
35+
totalCount
36+
}
2837
educationBackgrounds {
2938
school
3039
major
@@ -33,6 +42,13 @@ defmodule MastaniServer.Test.Query.Account.Basic do
3342
company
3443
title
3544
}
45+
subscribedCommunities {
46+
entries {
47+
id
48+
}
49+
pageSize
50+
totalCount
51+
}
3652
}
3753
}
3854
"""
@@ -47,6 +63,7 @@ defmodule MastaniServer.Test.Query.Account.Basic do
4763
assert results["cmsPassport"] == nil
4864
end
4965

66+
@tag :wip
5067
test "login user can get it's own profile", ~m(user_conn user)a do
5168
results = user_conn |> query_result(@query, %{}, "user")
5269
assert results["id"] == to_string(user.id)

0 commit comments

Comments
 (0)