[FEAT] Social lists, connection (WIP)
[gargantext.git] / bin / gargantext-import / Main.hs
index de8d3ecb9328430932eb218f05f748c4611dee5b..8d800bb7c101762e4ea5e39a7d2c87d0f729cd70 100644 (file)
@@ -11,44 +11,55 @@ Import a corpus binary.
 
  -}
 
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE FlexibleContexts  #-}
-{-# LANGUAGE RankNTypes        #-}
 {-# LANGUAGE Strict            #-}
 
 module Main where
 
-import Prelude (read)
 import Control.Exception (finally)
-import Servant (ServantErr)
-import Gargantext.Prelude
-import Gargantext.Database.Flow (FlowCmdM, flowCorpusFile)
-import Gargantext.Text.Parsers (FileFormat(CsvHalFormat))
-import Gargantext.Database.Utils (Cmd, )
-import Gargantext.Database.Types.Node (CorpusId, toHyperdataDocument)
-import Gargantext.Database.Schema.User (insertUsersDemo)
-import Gargantext.Text.Terms (TermType(..))
-import Gargantext.Core (Lang(..))
-import Gargantext.API.Node () -- instances
-import Gargantext.API.Settings (withDevEnv, runCmdDev, DevEnv)
+import Data.Either
+import Data.Text (Text)
+import Prelude (read)
 import System.Environment (getArgs)
---import Gargantext.Text.Parsers.GrandDebat (readFile, GrandDebatReference(..))
 import qualified Data.Text as Text
-import Control.Monad.IO.Class (liftIO)
+
+import Gargantext.API.Dev (withDevEnv, runCmdDev)
+import Gargantext.API.Admin.EnvTypes (DevEnv(..))
+import Gargantext.API.Node () -- instances
+import Gargantext.API.Prelude (GargError)
+import Gargantext.Core (Lang(..))
+import Gargantext.Core.Types.Individu (User(..))
+import Gargantext.Database.Action.Flow (FlowCmdM, flowCorpusFile, flowAnnuaire, TermType(..))
+import Gargantext.Database.Query.Table.User (insertUsersDemo)
+import Gargantext.Database.Admin.Types.Hyperdata (toHyperdataDocument)
+import Gargantext.Database.Admin.Types.Node (CorpusId)
+import Gargantext.Database.Prelude (Cmd)
+import Gargantext.Prelude
+import Gargantext.Core.Text.Corpus.Parsers (FileFormat(..))
 
 main :: IO ()
 main = do
-  [userCreate, user, name, iniPath, limit, corpusPath] <- getArgs
+  [fun, user, name, iniPath, limit, corpusPath] <- getArgs
 
   --{-
-  let createUsers :: Cmd ServantErr Int64
+
+  let createUsers :: Cmd GargError Int64
       createUsers = insertUsersDemo
   
-  let cmd :: forall m. FlowCmdM DevEnv ServantErr m => m CorpusId
-      cmd = flowCorpusFile (cs user) (cs name) (read limit :: Int) (Unsupervised EN 5 Nothing) CsvHalFormat corpusPath
+  let
+    --tt = (Unsupervised EN 6 0 Nothing)
+    tt = (Multi EN)
+    format = CsvGargV3 -- CsvHal --WOS
+    corpus :: forall m. FlowCmdM DevEnv GargError m => m CorpusId
+    corpus = flowCorpusFile (UserName $ cs user) (Left (cs name :: Text)) (read limit :: Int) tt  format corpusPath
+
+    corpusCsvHal :: forall m. FlowCmdM DevEnv GargError m => m CorpusId
+    corpusCsvHal = flowCorpusFile (UserName $ cs user) (Left (cs name :: Text)) (read limit :: Int) tt CsvHal corpusPath
+
+    annuaire :: forall m. FlowCmdM DevEnv GargError m => m CorpusId
+    annuaire = flowAnnuaire (UserName $ cs user) (Left "Annuaire") (Multi EN) corpusPath
+
   {-
-  let debatCorpus :: forall m. FlowCmdM DevEnv ServantErr m => m CorpusId
+  let debatCorpus :: forall m. FlowCmdM DevEnv GargError m => m CorpusId
       debatCorpus = do
         docs <- liftIO ( splitEvery 500
                        <$> take (read limit :: Int)
@@ -58,13 +69,22 @@ main = do
         flowCorpus (Text.pack user) (Text.pack name) (Multi FR) (map (map toHyperdataDocument) docs)
   --}
 
-
   withDevEnv iniPath $ \env -> do
-    _ <- if userCreate == "true"
+    _ <- if fun == "users"
           then runCmdDev env createUsers
           else pure 0 --(cs "false")
 
-    _ <- runCmdDev env cmd
+    _ <- if fun == "corpus"
+          then runCmdDev env corpus
+          else pure 0 --(cs "false")
+
+    _ <- if fun == "corpusCsvHal"
+          then runCmdDev env corpusCsvHal
+          else pure 0 --(cs "false")
+    _ <- if fun == "annuaire"
+            then runCmdDev env annuaire
+            else pure 0
     {-
     _ <- if corpusType == "csv"
             then runCmdDev env csvCorpus