@@ -300,22 +300,21 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
300300
301301 defp domain_filter_query ( queryable , _filter ) , do: queryable
302302
303- defp add_pin_contents_ifneed ( contents , querable , % { community: _community } = filter ) do
303+ defp add_pin_contents_ifneed ( contents , querable , % { community: community } = filter ) do
304304 with { :ok , _ } <- should_add_pin? ( filter ) ,
305305 { :ok , info } <- match ( querable ) ,
306- { :ok , normal_contents } <- contents ,
307- true <- Map . has_key? ( filter , :community ) ,
308- true <- 1 == Map . get ( normal_contents , :page_number ) do
309- { :ok , pined_content } =
306+ true <- 1 == Map . get ( contents , :page_number ) do
307+ { :ok , pinned_articles } =
310308 PinnedArticle
311309 |> join ( :inner , [ p ] , c in assoc ( p , :community ) )
312- |> join ( :inner , [ p ] , content in assoc ( p , ^ info . thread ) )
313- |> where ( [ p , c , content ] , c . raw == ^ filter . community )
314- |> select ( [ p , c , content ] , content )
310+ # |> join(:inner, [p], article in assoc(p, ^filter.thread))
311+ |> join ( :inner , [ p ] , article in assoc ( p , ^ info . thread ) )
312+ |> where ( [ p , c , article ] , c . raw == ^ community )
313+ |> select ( [ p , c , article ] , article )
315314 # 10 pined contents per community/thread, at most
316- |> ORM . paginater ( % { page: 1 , size: 10 } )
315+ |> ORM . find_all ( % { page: 1 , size: 10 } )
317316
318- concat_contents ( pined_content , normal_contents )
317+ concat_contents ( pinned_articles , contents )
319318 else
320319 _error -> contents
321320 end
@@ -325,22 +324,16 @@ defmodule GroupherServer.CMS.Delegate.ArticleCURD do
325324
326325 # if filter contains like: tags, sort.., then don't add pin content
327326 defp should_add_pin? ( % { page: 1 , tag: :all , sort: :desc_inserted } = filter ) do
328- filter
329- |> Map . keys ( )
330- |> Enum . reject ( fn x -> x in [ :community , :tag , :sort , :page , :size ] end )
331- |> case do
332- [ ] -> { :ok , :pass }
333- _ -> { :error , :pass }
334- end
327+ { :ok , :pass }
335328 end
336329
337330 defp should_add_pin? ( _filter ) , do: { :error , :pass }
338331
339332 defp concat_contents ( % { total_count: 0 } , normal_contents ) , do: normal_contents
340333
341- defp concat_contents ( pined_content , normal_contents ) do
334+ defp concat_contents ( pinned_articles , normal_contents ) do
342335 pind_entries =
343- pined_content
336+ pinned_articles
344337 |> Map . get ( :entries )
345338 |> Enum . map ( & struct ( & 1 , % { is_pinned: true } ) )
346339
0 commit comments