[DBFLOW] getViewDocument + uniqIdBdd (enables duplicatas from different Database...
[gargantext.git] / src / Gargantext / API / Count.hs
index cbfab48803fe9fb8c63d884bc8ec3caa2bd0beb3..cca261095a9201027f8530dca78afaa8d630e273 100644 (file)
@@ -11,12 +11,14 @@ Count API part of Gargantext.
 -}
 
 {-# OPTIONS_GHC -fno-warn-name-shadowing #-}
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE TemplateHaskell             #-}
-{-# LANGUAGE TypeOperators               #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE DeriveAnyClass              #-}
-{-# LANGUAGE OverloadedStrings           #-}
+
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE TemplateHaskell    #-}
+{-# LANGUAGE TypeOperators      #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE DeriveAnyClass     #-}
+{-# LANGUAGE OverloadedStrings  #-}
 
 module Gargantext.API.Count
       where
@@ -28,6 +30,7 @@ import Prelude (Bounded, Enum, minBound, maxBound)
 import Data.Aeson hiding (Error)
 import Data.Aeson.TH (deriveJSON)
 import Data.Eq (Eq())
+import Data.Either
 import Data.List (repeat, permutations)
 import Data.Swagger
 import Data.Text (Text, pack)
@@ -38,7 +41,7 @@ import Test.QuickCheck (elements)
 -- import Control.Applicative ((<*>))
 
 import Gargantext.Prelude
-import Gargantext.Utils.Prefix (unPrefix)
+import Gargantext.Core.Utils.Prefix (unPrefix)
 
 -----------------------------------------------------------------------
 type CountAPI = Post '[JSON] Counts
@@ -59,7 +62,6 @@ instance Arbitrary Scraper where
 instance ToSchema Scraper
 
 -----------------------------------------------------------------------
-
 data QueryBool = QueryBool Text
         deriving (Eq, Show, Generic)
 
@@ -105,8 +107,6 @@ messages :: [Message]
 messages =  toMessage $ [ (400, ["Ill formed query             "])
                         , (300, ["API connexion error          "])
                         , (300, ["Internal Gargantext Error    "])
-                        , (300, ["Connexion to Gargantext Error"])
-                        , (300, ["Token has expired            "])
                         ] <> take 10 ( repeat (200, [""]))
 
 instance Arbitrary Message where
@@ -117,31 +117,25 @@ instance ToJSON   Message
 
 instance ToSchema Message
 -----------------------------------------------------------------------
-data Counts = Counts [Count]
-                   deriving (Eq, Show, Generic)
+data Counts = Counts { results :: [Either Message Count]
+                     } deriving (Eq, Show, Generic)
+
 
 instance FromJSON Counts
 instance ToJSON   Counts
 
 instance Arbitrary Counts where
-    arbitrary = elements $ select
-                         $ map Counts 
-                         $ map (\xs -> zipWith (\s (c,m) -> Count s c m) scrapers xs) 
-                         $ chunkAlong (length scrapers) 1 $  (map filter' countOrErrors)
-        where
-            select xs = (take 10 xs) <> (take 10 $ drop 100 xs)
-            countOrErrors = [ (c,e) | c <- [500..1000], e <- reverse messages]
-            filter' (c,e) = case e of
-                              Message 200 _ -> (Just c , Nothing     )
-                              message       -> (Nothing, Just message)
+    arbitrary = elements [Counts [ Right (Count Pubmed (Just 20 ))
+                                 , Right (Count IsTex  (Just 150))
+                                 , Right (Count Hal    (Just 150))
+                                 ]
+                         ]
 
 instance ToSchema Counts
 
-
 -----------------------------------------------------------------------
 data Count = Count { count_name    :: Scraper
                    , count_count   :: Maybe Int
-                   , count_message :: Maybe Message
                    }
                    deriving (Eq, Show, Generic)