3 Description : Gargantext Import Corpus
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
10 Import a corpus binary.
14 {-# LANGUAGE NoImplicitPrelude #-}
15 {-# LANGUAGE OverloadedStrings #-}
16 {-# LANGUAGE FlexibleContexts #-}
17 {-# LANGUAGE RankNTypes #-}
18 {-# LANGUAGE Strict #-}
22 import Data.Either (Either(..))
23 import Data.Maybe (Maybe(..))
24 import Gargantext.API.Admin.Settings (withDevEnv, runCmdDev)
25 import Gargantext.API.Prelude (GargError)
26 import Gargantext.API.Node () -- instances
27 import Gargantext.Core.Types.Individu (User(..))
28 import Gargantext.Database.Action.Flow (getOrMkRoot, getOrMk_RootWithCorpus)
29 import Gargantext.Database.Query.Table.Node (getOrMkList)
30 import Gargantext.Database.Query.Table.User (insertUsersDemo)
31 import Gargantext.Database.Admin.Config (userMaster, corpusMasterName)
32 import Gargantext.Database.Admin.Types.Node
33 import Gargantext.Database.Admin.Trigger.Init (initTriggers)
34 import Gargantext.Database.Admin.Types.Hyperdata (HyperdataCorpus)
35 import Gargantext.Database.Admin.Types.Node (CorpusId, RootId, ListId)
36 import Gargantext.Database.Prelude (Cmd, )
37 import Gargantext.Prelude
38 import System.Environment (getArgs)
44 let createUsers :: Cmd GargError Int64
45 createUsers = insertUsersDemo
48 mkRoots :: Cmd GargError [(UserId, RootId)]
49 mkRoots = mapM getOrMkRoot $ map UserName ["gargantua", "user1", "user2"]
50 -- TODO create all users roots
53 initMaster :: Cmd GargError (UserId, RootId, CorpusId, ListId)
55 (masterUserId, masterRootId, masterCorpusId) <- getOrMk_RootWithCorpus (UserName userMaster) (Left corpusMasterName) (Nothing :: Maybe HyperdataCorpus)
56 masterListId <- getOrMkList masterCorpusId masterUserId
57 _triggers <- initTriggers masterListId
58 pure (masterUserId, masterRootId, masterCorpusId, masterListId)
60 withDevEnv iniPath $ \env -> do
61 _ <- runCmdDev env createUsers
62 _ <- runCmdDev env mkRoots
63 x <- runCmdDev env initMaster