Commit 4eb0b1c2 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FIX] Optim count table

parent 56f7eea3
...@@ -45,7 +45,7 @@ import Gargantext.API.Ngrams.Types (TabType(..)) ...@@ -45,7 +45,7 @@ import Gargantext.API.Ngrams.Types (TabType(..))
import Gargantext.API.Prelude (GargServer) import Gargantext.API.Prelude (GargServer)
import Gargantext.Core.Types (Offset, Limit, TableResult(..)) import Gargantext.Core.Types (Offset, Limit, TableResult(..))
import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger)
import Gargantext.Database.Query.Facet (FacetDoc , runViewDocuments, OrderBy(..), runViewAuthorsDoc) import Gargantext.Database.Query.Facet (FacetDoc , runViewDocuments, runCountDocuments, OrderBy(..), runViewAuthorsDoc)
import Gargantext.Database.Action.Learn (FavOrTrash(..), moreLike) import Gargantext.Database.Action.Learn (FavOrTrash(..), moreLike)
import Gargantext.Database.Action.Search import Gargantext.Database.Action.Search
import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Admin.Types.Node
...@@ -116,7 +116,7 @@ searchInCorpus' :: CorpusId ...@@ -116,7 +116,7 @@ searchInCorpus' :: CorpusId
-> Maybe OrderBy -> Maybe OrderBy
-> Cmd err FacetTableResult -> Cmd err FacetTableResult
searchInCorpus' cId t q o l order = do searchInCorpus' cId t q o l order = do
docs <- searchInCorpus cId t q o l order docs <- searchInCorpus cId t q o l order
countAllDocs <- searchCountInCorpus cId t q countAllDocs <- searchCountInCorpus cId t q
pure $ TableResult { tr_docs = docs, tr_count = countAllDocs } pure $ TableResult { tr_docs = docs, tr_count = countAllDocs }
...@@ -125,10 +125,9 @@ getTable :: NodeId -> Maybe TabType ...@@ -125,10 +125,9 @@ getTable :: NodeId -> Maybe TabType
-> Maybe Offset -> Maybe Limit -> Maybe Offset -> Maybe Limit
-> Maybe OrderBy -> Cmd err FacetTableResult -> Maybe OrderBy -> Cmd err FacetTableResult
getTable cId ft o l order = do getTable cId ft o l order = do
docs <- getTable' cId ft o l order docs <- getTable' cId ft o l order
-- TODO: Rewrite to use runCountOpaQuery and avoid (length allDocs) docsCount <- runCountDocuments cId (if ft == Just Trash then True else False)
allDocs <- getTable' cId ft Nothing Nothing Nothing pure $ TableResult { tr_docs = docs, tr_count = docsCount }
pure $ TableResult { tr_docs = docs, tr_count = length allDocs }
getTable' :: NodeId -> Maybe TabType getTable' :: NodeId -> Maybe TabType
-> Maybe Offset -> Maybe Limit -> Maybe Offset -> Maybe Limit
......
...@@ -21,6 +21,7 @@ Portability : POSIX ...@@ -21,6 +21,7 @@ Portability : POSIX
module Gargantext.Database.Query.Facet module Gargantext.Database.Query.Facet
( runViewAuthorsDoc ( runViewAuthorsDoc
, runViewDocuments , runViewDocuments
, runCountDocuments
, filterWith , filterWith
, Pair(..) , Pair(..)
...@@ -281,6 +282,11 @@ runViewDocuments cId t o l order = ...@@ -281,6 +282,11 @@ runViewDocuments cId t o l order =
where where
ntId = nodeTypeId NodeDocument ntId = nodeTypeId NodeDocument
runCountDocuments :: CorpusId -> IsTrash -> Cmd err Int
runCountDocuments cId t =
runCountOpaQuery $ viewDocuments cId t $ nodeTypeId NodeDocument
viewDocuments :: CorpusId -> IsTrash -> NodeTypeId -> Query FacetDocRead viewDocuments :: CorpusId -> IsTrash -> NodeTypeId -> Query FacetDocRead
viewDocuments cId t ntId = proc () -> do viewDocuments cId t ntId = proc () -> do
n <- queryNodeTable -< () n <- queryNodeTable -< ()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment