@@ -2,7 +2,7 @@ defmodule GroupherServerWeb.Schema.Helper.Queries do
2
2
@ moduledoc """
3
3
common fields
4
4
"""
5
- import Helper.Utils , only: [ get_config: 2 ]
5
+ import Helper.Utils , only: [ get_config: 2 , plural: 1 ]
6
6
7
7
alias GroupherServerWeb.Middleware , as: M
8
8
alias GroupherServerWeb.Resolvers , as: R
@@ -14,8 +14,9 @@ defmodule GroupherServerWeb.Schema.Helper.Queries do
14
14
@ article_threads
15
15
|> Enum . map ( fn thread ->
16
16
quote do
17
- @ desc unquote ( "paged published#{ thread } s" )
18
- field unquote ( :"paged_published_#{ thread } s" ) , unquote ( :"paged_#{ thread } s" ) do
17
+ @ desc unquote ( "paged published#{ plural ( thread ) } " )
18
+ field unquote ( :"paged_published_#{ plural ( thread ) } " ) ,
19
+ unquote ( :"paged_#{ plural ( thread ) } " ) do
19
20
arg ( :login , non_null ( :string ) )
20
21
arg ( :filter , non_null ( :paged_filter ) )
21
22
arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
@@ -32,7 +33,7 @@ defmodule GroupherServerWeb.Schema.Helper.Queries do
32
33
|> Enum . map ( fn thread ->
33
34
quote do
34
35
@ desc unquote ( "get#{ thread } by id" )
35
- field unquote ( :"search_#{ thread } s " ) , unquote ( :"paged_#{ thread } s " ) do
36
+ field unquote ( :"search_#{ plural ( thread ) } " ) , unquote ( :"paged_#{ plural ( thread ) } " ) do
36
37
arg ( :title , non_null ( :string ) )
37
38
arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
38
39
@@ -47,25 +48,28 @@ defmodule GroupherServerWeb.Schema.Helper.Queries do
47
48
48
49
post, page_posts ...
49
50
"""
50
- defmacro article_queries ( thread ) do
51
- quote do
52
- @ desc unquote ( "get#{ thread } by id" )
53
- field unquote ( thread ) , non_null ( unquote ( thread ) ) do
54
- arg ( :id , non_null ( :id ) )
55
- arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
51
+ defmacro article_queries ( ) do
52
+ @ article_threads
53
+ |> Enum . map ( fn thread ->
54
+ quote do
55
+ @ desc unquote ( "get#{ thread } by id" )
56
+ field unquote ( thread ) , non_null ( unquote ( thread ) ) do
57
+ arg ( :id , non_null ( :id ) )
58
+ arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
56
59
57
- resolve ( & R.CMS . read_article / 3 )
58
- end
60
+ resolve ( & R.CMS . read_article / 3 )
61
+ end
59
62
60
- @ desc unquote ( "get paged#{ thread } s " )
61
- field unquote ( :"paged_#{ thread } s " ) , unquote ( :"paged_#{ thread } s " ) do
62
- arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
63
- arg ( :filter , non_null ( unquote ( :"paged_#{ thread } s_filter " ) ) )
63
+ @ desc unquote ( "get paged#{ plural ( thread ) } " )
64
+ field unquote ( :"paged_#{ plural ( thread ) } " ) , unquote ( :"paged_#{ plural ( thread ) } " ) do
65
+ arg ( :thread , unquote ( :"#{ thread } _thread" ) , default_value: unquote ( thread ) )
66
+ arg ( :filter , non_null ( unquote ( :"paged_#{ plural ( thread ) } _filter " ) ) )
64
67
65
- middleware ( M.PageSizeProof , default_sort: :desc_active )
66
- resolve ( & R.CMS . paged_articles / 3 )
68
+ middleware ( M.PageSizeProof , default_sort: :desc_active )
69
+ resolve ( & R.CMS . paged_articles / 3 )
70
+ end
67
71
end
68
- end
72
+ end )
69
73
end
70
74
71
75
defmacro article_reacted_users_query ( action , resolver ) do