[FIX] Order 1 and Order 2, node size ok.
[gargantext.git] / src / Gargantext / Database / Query / Table / Node / Children.hs
index 9d9df01940d99eb72a10da32a4670666e65e5d28..91f025e5c00d18aaea231759966909cee7d688b9 100644 (file)
@@ -8,46 +8,45 @@ Stability   : experimental
 Portability : POSIX
 -}
 
-{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+
 {-# OPTIONS_GHC -fno-warn-orphans        #-}
 
-{-# LANGUAGE Arrows                 #-}
+{-# LANGUAGE Arrows                      #-}
 
 module Gargantext.Database.Query.Table.Node.Children
   where
 
 import Control.Arrow (returnA)
 import Data.Proxy
-import Opaleye
-import Protolude
-
+import Gargantext.Core
 import Gargantext.Core.Types
-import Gargantext.Database.Admin.Config (nodeTypeId)
-import Gargantext.Database.Admin.Types.Node (pgNodeId)
-import Gargantext.Database.Admin.Types.Hyperdata (HyperdataDocument)
+import Gargantext.Database.Admin.Types.Hyperdata (HyperdataDocument, HyperdataContact)
+import Gargantext.Database.Prelude
 import Gargantext.Database.Query.Filter
-import Gargantext.Database.Query.Table.Node
 import Gargantext.Database.Query.Table.NodeNode
-import Gargantext.Database.Query.Table.Node.Contact (HyperdataContact)
-import Gargantext.Database.Prelude
 import Gargantext.Database.Schema.Node
+import Opaleye
+import Protolude
 
-getAllDocuments :: ParentId -> Cmd err (TableResult (Node HyperdataDocument))
+
+-- TODO getAllTableDocuments
+getAllDocuments :: HasDBid NodeType => ParentId -> Cmd err (TableResult (Node HyperdataDocument))
 getAllDocuments pId = getAllChildren pId (Proxy :: Proxy HyperdataDocument)
                                          (Just NodeDocument)
 
-getAllContacts :: ParentId -> Cmd err (TableResult (Node HyperdataContact))
+-- TODO getAllTableContacts
+getAllContacts :: HasDBid NodeType => ParentId -> Cmd err (TableResult (Node HyperdataContact))
 getAllContacts pId = getAllChildren pId (Proxy :: Proxy HyperdataContact)
                                         (Just NodeContact)
 
-getAllChildren :: JSONB a
+getAllChildren :: (JSONB a, HasDBid NodeType)
                => ParentId
                -> proxy a
                -> Maybe NodeType
                -> Cmd err (NodeTableResult a)
 getAllChildren pId p maybeNodeType = getChildren pId p maybeNodeType Nothing Nothing
 
-getChildren :: JSONB a
+getChildren :: (JSONB a, HasDBid NodeType)
             => ParentId
             -> proxy a
             -> Maybe NodeType
@@ -67,15 +66,16 @@ getChildren pId _ maybeNodeType maybeOffset maybeLimit = do
   where
     query = selectChildren pId maybeNodeType
 
-selectChildren :: ParentId
+selectChildren :: HasDBid NodeType
+               => ParentId
                -> Maybe NodeType
                -> Query NodeRead
 selectChildren parentId maybeNodeType = proc () -> do
-    row@(Node nId typeName _ parent_id _ _ _) <- queryNodeTable -< ()
+    row@(Node nId typeName _ parent_id _ _ _) <- queryNodeTable -< ()
     (NodeNode n1id n2id _ _) <- queryNodeNodeTable -< ()
 
-    let nodeType = maybe 0 nodeTypeId maybeNodeType
-    restrict -< typeName  .== pgInt4 nodeType
+    let nodeType = maybe 0 toDBid maybeNodeType
+    restrict -< typeName  .== sqlInt4 nodeType
 
     restrict -< (.||) (parent_id .== (pgNodeId parentId))
                       ( (.&&) (n1id .== pgNodeId parentId)