[WIP] [Forgot password] render in FE
[gargantext.git] / src / Gargantext / Database / Admin / Config.hs
index 55060398a55df123d0a65faa4306293479a5cb1e..d31c8f5e2f34cd99da26feaff708f9d39ecfe099 100644 (file)
@@ -14,6 +14,8 @@ TODO: configure nodes table in Haskell (Config typenames etc.)
 -}
 
 
+{-# OPTIONS_GHC -fno-warn-orphans        #-}
+
 module Gargantext.Database.Admin.Config
     where
 
@@ -22,6 +24,7 @@ import Data.List        (lookup)
 import Data.Maybe       (fromMaybe)
 import Data.Text        (Text,pack)
 import Data.Tuple.Extra (swap)
+import Gargantext.Core (HasDBid(..))
 import Gargantext.Database.Admin.Types.Node
 import Gargantext.Database.Schema.Node
 import Gargantext.Prelude
@@ -36,35 +39,47 @@ userMaster = "gargantua"
 userArbitrary :: Text
 userArbitrary = "user1"
 
+instance HasDBid NodeType where
+  toDBid  = nodeTypeId
+  fromDBid = fromNodeTypeId
+
+
 nodeTypeId :: NodeType -> NodeTypeId
 nodeTypeId n =
   case n of
-    NodeUser      -> 1
-    NodeFolder    -> 2
+    NodeUser          -> 1
+    NodeFolder        -> 2
     NodeFolderPrivate -> 20
     NodeFolderShared  -> 21
     NodeTeam          -> 210
     NodeFolderPublic  -> 22
-    NodeCorpusV3  -> 3
-    NodeCorpus    -> 30
-    NodeAnnuaire  -> 31
-    NodeTexts     -> 40
-    NodeDocument  -> 4
-    NodeContact   -> 41
+    NodeCorpusV3      -> 3
+    NodeCorpus        -> 30
+    NodeAnnuaire      -> 31
+    NodeTexts         -> 40
+    NodeDocument      -> 4
+    NodeContact       -> 41
   --NodeSwap   -> 19
 
 ----  Lists
     NodeList      -> 5
     NodeListCooc  -> 50
-    NodeListModel -> 52
+    NodeModel -> 52
 
 ----  Scores
 --    NodeOccurrences -> 10
     NodeGraph       -> 9
     NodePhylo       -> 90
-    NodeChart       -> 7
+--    NodeChart       -> 7
     NodeDashboard   -> 71
-    NodeNoteBook    -> 88
+--    NodeNoteBook    -> 88
+
+    NodeFile        -> 101
+
+    NodeFrameWrite    -> 991
+    NodeFrameCalc     -> 992
+    NodeFrameNotebook -> 993
+    NodeFrameVisio    -> 994
 
 --  Cooccurrences -> 9
 --
@@ -81,18 +96,19 @@ nodeTypeId n =
 --  Node management
 --  NodeFavorites    -> 15
 
-
 hasNodeType :: forall a. Node a -> NodeType -> Bool
-hasNodeType n nt = (view node_typename n) == (nodeTypeId nt)
+hasNodeType n nt = (view node_typename n) == (toDBid nt)
+
+isInNodeTypes :: forall a. Node a -> [NodeType] -> Bool
+isInNodeTypes n ts = elem (view node_typename n) (map toDBid ts)
 
---
 -- | Nodes are typed in the database according to a specific ID
 --
 nodeTypeInv :: [(NodeTypeId, NodeType)]
 nodeTypeInv = map swap nodeTypes
 
 nodeTypes :: [(NodeType, NodeTypeId)]
-nodeTypes = [ (n, nodeTypeId n) | n <- allNodeTypes ]
+nodeTypes = [ (n, toDBid n) | n <- allNodeTypes ]
 
 fromNodeTypeId :: NodeTypeId -> NodeType
 fromNodeTypeId tId = fromMaybe (panic $ pack $ "Type Id " <> show tId <> " does not exist")