From 8a9b8c9be949057c9f236ece99729fbae7238225 Mon Sep 17 00:00:00 2001
From: Nicolas Pouillard <nicolas.pouillard@gmail.com>
Date: Mon, 4 Feb 2019 16:23:46 +0100
Subject: [PATCH] [NGRAMS-REPO] Mock repo in dev-mode

---
 src/Gargantext/API/Ngrams.hs   | 42 +++++++++++++++++++++-------------
 src/Gargantext/API/Settings.hs |  4 ++--
 2 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/src/Gargantext/API/Ngrams.hs b/src/Gargantext/API/Ngrams.hs
index 4fd956f4..7da33bbf 100644
--- a/src/Gargantext/API/Ngrams.hs
+++ b/src/Gargantext/API/Ngrams.hs
@@ -176,23 +176,25 @@ toNgramsElement ns = map toNgramsElement' ns
                   $ map (\(NgramsTableData _ p t _ _ _) -> (p, Set.singleton t)) ns
 -}
 
+mockTable :: NgramsTable
+mockTable = NgramsTable
+  [ NgramsElement "animal"  GraphList     1  Nothing       (mSetFromList ["dog", "cat"])
+  , NgramsElement "cat"     GraphList     1 (Just "animal") mempty
+  , NgramsElement "cats"    StopList      4  Nothing        mempty
+  , NgramsElement "dog"     GraphList     3 (Just "animal")(mSetFromList ["dogs"])
+  , NgramsElement "dogs"    StopList      4 (Just "dog")    mempty
+  , NgramsElement "fox"     GraphList     1  Nothing        mempty
+  , NgramsElement "object"  CandidateList 2  Nothing        mempty
+  , NgramsElement "nothing" StopList      4  Nothing        mempty
+  , NgramsElement "organic" GraphList     3  Nothing        (mSetFromList ["flower"])
+  , NgramsElement "flower"  GraphList     3 (Just "organic") mempty
+  , NgramsElement "moon"    CandidateList 1  Nothing         mempty
+  , NgramsElement "sky"     StopList      1  Nothing         mempty
+  ]
+
 instance Arbitrary NgramsTable where
-  arbitrary = elements
-              [ NgramsTable
-                [ NgramsElement "animal"  GraphList     1  Nothing       (mSetFromList ["dog", "cat"])
-                , NgramsElement "cat"     GraphList     1 (Just "animal") mempty
-                , NgramsElement "cats"    StopList      4  Nothing        mempty
-                , NgramsElement "dog"     GraphList     3 (Just "animal")(mSetFromList ["dogs"])
-                , NgramsElement "dogs"    StopList      4 (Just "dog")    mempty
-                , NgramsElement "fox"     GraphList     1  Nothing        mempty
-                , NgramsElement "object"  CandidateList 2  Nothing        mempty
-                , NgramsElement "nothing" StopList      4  Nothing        mempty
-                , NgramsElement "organic" GraphList     3  Nothing        (mSetFromList ["flower"])
-                , NgramsElement "flower"  GraphList     3 (Just "organic") mempty
-                , NgramsElement "moon"    CandidateList 1  Nothing         mempty
-                , NgramsElement "sky"     StopList      1  Nothing         mempty
-                ]
-              ]
+  arbitrary = pure mockTable
+
 instance ToSchema NgramsTable
 
 ------------------------------------------------------------------------
@@ -547,6 +549,14 @@ type NgramsState      = Map ListId (Map NgramsType NgramsTableMap)
 type NgramsStatePatch = PatchMap ListId (PatchMap NgramsType NgramsTablePatch)
 type NgramsRepo       = Repo NgramsState NgramsStatePatch
 
+initMockRepo :: NgramsRepo
+initMockRepo = Repo 1 s []
+  where
+    s = Map.singleton 1
+      $ Map.singleton Ngrams.NgramsTerms
+      $ Map.fromList
+      [ (n ^. ne_ngrams, n) | n <- mockTable ^. _NgramsTable ]
+
 class HasRepoVar env where
   repoVar :: Getter env (MVar NgramsRepo)
 
diff --git a/src/Gargantext/API/Settings.hs b/src/Gargantext/API/Settings.hs
index 620cd128..6bcd3b28 100644
--- a/src/Gargantext/API/Settings.hs
+++ b/src/Gargantext/API/Settings.hs
@@ -50,7 +50,7 @@ import Control.Monad.Logger
 import Control.Lens
 import Gargantext.Prelude
 import Gargantext.Database.Utils (databaseParameters, HasConnection(..))
-import Gargantext.API.Ngrams (NgramsRepo, HasRepoVar(..), initRepo)
+import Gargantext.API.Ngrams (NgramsRepo, HasRepoVar(..), initMockRepo)
 import Gargantext.API.Orchestrator.Types
 
 type PortNumber = Int
@@ -161,7 +161,7 @@ newEnv port file = do
   self_url <- parseBaseUrl $ "http://0.0.0.0:" <> show port
   param <- databaseParameters file
   conn <- connect param
-  repo_var <- newMVar initRepo
+  repo_var <- newMVar initMockRepo
   scrapers_env <- newJobEnv defaultSettings manager
   logger <- newStderrLoggerSet defaultBufSize
   pure $ Env
-- 
2.21.0