1
1
defmodule Helper.QueryBuilder do
2
- # alias GroupherServer.Repo
3
- import Ecto.Query , warn: false
2
+ @ moduledoc """
3
+ handle common query pices across the project
4
+ """
4
5
6
+ import Ecto.Query , warn: false
5
7
alias GroupherServer.CMS
6
8
7
9
@ doc """
8
- handle [3] situation:
9
-
10
- 1. basic query with filter
11
- 2. reaction_user's count
12
- 3. is viewer reacted?
13
-
14
- bewteen [THREAD] and [REACT]
15
- [REACT]; upvotes, stars, watchs ...
10
+ load inner user field
16
11
"""
17
12
def load_inner_users ( queryable , filter ) do
18
13
queryable
@@ -81,12 +76,9 @@ defmodule Helper.QueryBuilder do
81
76
queryable |> order_by ( asc: :index )
82
77
83
78
{ :sort , :most_views } , queryable ->
84
- # this will cause error in Dialyzer
85
- # queryable |> order_by(^sort_strategy(:most_views))
86
79
queryable |> order_by ( desc: :views , desc: :inserted_at )
87
80
88
81
{ :sort , :least_views } , queryable ->
89
- # queryable |> order_by(^sort_strategy(:least_views))
90
82
queryable |> order_by ( asc: :views , desc: :inserted_at )
91
83
92
84
{ :sort , :most_stars } , queryable ->
@@ -95,9 +87,6 @@ defmodule Helper.QueryBuilder do
95
87
{ :sort , :least_stars } , queryable ->
96
88
queryable |> sort_by_count ( :stars , :asc )
97
89
98
- { :sort , :most_likes } , queryable ->
99
- queryable |> sort_by_count ( :likes , :desc )
100
-
101
90
{ :length , :most_words } , queryable ->
102
91
queryable |> order_by ( desc: :length )
103
92
0 commit comments