{-| Module : Gargantext.Database.Action.Query Description : Main Tools of Node to the database Copyright : (c) CNRS, 2017-Present License : AGPL + CECILL v3 Maintainer : team@gargantext.org Stability : experimental Portability : POSIX -} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} {-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE Arrows #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module Gargantext.Database.Action.Query where import Gargantext.Core.Types (Name) import Gargantext.Database.Action.Query.Node import Gargantext.Database.Action.Query.Node.User import Gargantext.Database.Action.Query.User import Gargantext.Database.Admin.Types.Errors import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Admin.Utils (Cmd) import Gargantext.Database.Schema.Node import Opaleye hiding (FromField) import Prelude hiding (null, id, map, sum) ------------------------------------------------------------------------ -- | TODO mk all others nodes mkNodeWithParent :: HasNodeError err => NodeType -> Maybe ParentId -> UserId -> Name -> Cmd err [NodeId] mkNodeWithParent NodeUser (Just _) _ _ = nodeError UserNoParent ------------------------------------------------------------------------ mkNodeWithParent NodeUser Nothing uId name = insertNodesWithParentR Nothing [node NodeUser name fake_HyperdataUser 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 _ = insertNodesWithParentR (Just i) [node NodeTeam "Team" 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 _ _ _ _ = nodeError NotImplYet