11defmodule Helper.QueryBuilder do
2- # alias GroupherServer.Repo
3- import Ecto.Query , warn: false
2+ @ moduledoc """
3+ handle common query pices across the project
4+ """
45
6+ import Ecto.Query , warn: false
57 alias GroupherServer.CMS
68
79 @ 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
1611 """
1712 def load_inner_users ( queryable , filter ) do
1813 queryable
@@ -81,12 +76,9 @@ defmodule Helper.QueryBuilder do
8176 queryable |> order_by ( asc: :index )
8277
8378 { :sort , :most_views } , queryable ->
84- # this will cause error in Dialyzer
85- # queryable |> order_by(^sort_strategy(:most_views))
8679 queryable |> order_by ( desc: :views , desc: :inserted_at )
8780
8881 { :sort , :least_views } , queryable ->
89- # queryable |> order_by(^sort_strategy(:least_views))
9082 queryable |> order_by ( asc: :views , desc: :inserted_at )
9183
9284 { :sort , :most_stars } , queryable ->
@@ -95,9 +87,6 @@ defmodule Helper.QueryBuilder do
9587 { :sort , :least_stars } , queryable ->
9688 queryable |> sort_by_count ( :stars , :asc )
9789
98- { :sort , :most_likes } , queryable ->
99- queryable |> sort_by_count ( :likes , :desc )
100-
10190 { :length , :most_words } , queryable ->
10291 queryable |> order_by ( desc: :length )
10392
0 commit comments