[FIX] merge
[gargantext.git] / src / Gargantext / Database / Action / Node.hs
index e7712664267d357070740b6805d2f869787dce2b..0ef4e1d0e2a6e49207256c705d166af0f55425d6 100644 (file)
@@ -23,16 +23,14 @@ module Gargantext.Database.Action.Node
 import Gargantext.Core.Types (Name)
 import Gargantext.Database.Admin.Types.Hyperdata
 import Gargantext.Database.Admin.Types.Node
-import Gargantext.Database.Prelude (Cmd)
 import Gargantext.Database.Query.Table.Node
 import Gargantext.Database.Query.Table.Node.Error
-import Gargantext.Database.Query.Table.Node.User
 import Gargantext.Database.Query.Table.Node.UpdateOpaleye (updateHyperdata)
 import Gargantext.Prelude
-import Gargantext.Prelude.Utils (sha)
+import Gargantext.Prelude.Crypto.Hash (hash)
 import Gargantext.Database.Prelude
 import Control.Lens (view)
-import Gargantext.Config (GargConfig(..))
+import Gargantext.Prelude.Config (GargConfig(..))
 
 ------------------------------------------------------------------------
 -- | TODO mk all others nodes
@@ -45,66 +43,23 @@ mkNodeWithParent :: (HasNodeError err)
 mkNodeWithParent NodeUser (Just _) _   _    = nodeError UserNoParent
 
 ------------------------------------------------------------------------
+-- | MkNode, insert and eventually configure Hyperdata
 mkNodeWithParent NodeUser Nothing uId name =
-  insertNodesWithParentR Nothing [node NodeUser name fake_HyperdataUser Nothing uId]
+  insertNodesWithParentR Nothing [node NodeUser name defaultHyperdataUser Nothing uId]
 
 mkNodeWithParent _ Nothing _ _ = nodeError HasParent
 ------------------------------------------------------------------------
-mkNodeWithParent NodeFolder (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeFolder name hd Nothing uId]
-    where
-      hd = defaultFolder
-
-mkNodeWithParent NodeFolderPrivate (Just i) uId _ =
-   insertNodesWithParentR (Just i) [node NodeFolderPrivate "Private" hd Nothing uId]
-    where
-      hd = defaultFolder
-
-mkNodeWithParent NodeFolderShared (Just i) uId _ =
-   insertNodesWithParentR (Just i) [node NodeFolderShared "Shared" hd Nothing uId]
-    where
-      hd = defaultFolder
-
-mkNodeWithParent NodeFolderPublic (Just i) uId _ =
-   insertNodesWithParentR (Just i) [node NodeFolderPublic "Public" hd Nothing uId]
-    where
-      hd = defaultFolder
-
-mkNodeWithParent NodeTeam (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeTeam name hd Nothing uId]
-    where
-      hd = defaultFolder
-------------------------------------------------------------------------
-mkNodeWithParent NodeCorpus (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeCorpus name hd Nothing uId]
-    where
-      hd = defaultCorpus
-
-mkNodeWithParent NodeAnnuaire (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeAnnuaire name hd Nothing uId]
-    where
-      hd = defaultAnnuaire
-
-mkNodeWithParent NodeList (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeList name hd Nothing uId]
-    where
-      hd = defaultAnnuaire
-
-mkNodeWithParent NodeGraph (Just i) uId name =
-   insertNodesWithParentR (Just i) [node NodeGraph name hd Nothing uId]
-    where
-      hd = arbitraryGraph
-
 mkNodeWithParent NodeFrameWrite i u n =
   mkNodeWithParent_ConfigureHyperdata NodeFrameWrite i u n
 
 mkNodeWithParent NodeFrameCalc i u n =
   mkNodeWithParent_ConfigureHyperdata NodeFrameCalc i u n
 
-mkNodeWithParent _ _ _ _       = nodeError NotImplYet
+mkNodeWithParent nt (Just pId) uId name  = insertNode nt (Just name) Nothing pId uId
+-- mkNodeWithParent _ _ _ _ = errorWith "[G.D.A.Node.mkNodeWithParent] nees parent"
 
 
--- | Sugar to create a node, get his NodeId and update his Hyperdata after
+-- | Sugar to create a node, get its NodeId and update its Hyperdata after
 mkNodeWithParent_ConfigureHyperdata :: (HasNodeError err)
                                     => NodeType
                                     -> Maybe ParentId
@@ -128,23 +83,24 @@ mkNodeWithParent_ConfigureHyperdata' :: (HasNodeError err)
                                     -> Name
                                     -> Cmd err [NodeId]
 mkNodeWithParent_ConfigureHyperdata' nt (Just i) uId name = do
-  maybeNodeId <- insertNodesWithParentR (Just i) [node nt name defaultFolder Nothing uId]
+  maybeNodeId <- case nt of
+     NodeFrameWrite -> insertNode NodeFrameWrite (Just name) Nothing i uId
+     NodeFrameCalc  -> insertNode NodeFrameCalc  (Just name) Nothing i uId
+     _              -> nodeError NeedsConfiguration
+
   case maybeNodeId of
     []  -> nodeError (DoesNotExist i)
     [n] -> do
       config <- view hasConfig
       u <- case nt of
             NodeFrameWrite -> pure $ _gc_frame_write_url config
-            NodeFrameCalc  -> pure $ _gc_frame_calc_url config
+            NodeFrameCalc  -> pure $ _gc_frame_calc_url  config
             _              -> nodeError NeedsConfiguration
       let
         s = _gc_secretkey config
-        hd = HyperdataFrame u (sha $ s <> (cs $ show n))
+        hd = HyperdataFrame u (hash $ s <> (cs $ show n))
       _ <- updateHyperdata n hd
       pure [n]
     (_:_:_)  -> nodeError MkNode
 mkNodeWithParent_ConfigureHyperdata' _ _ _ _ = nodeError HasParent
 
-
-
-