[CLEAN] readFile homonyms
[gargantext.git] / src / Gargantext / API / Count.hs
index cca261095a9201027f8530dca78afaa8d630e273..93ea9b2629a448621793ccb78de964c2e204be64 100644 (file)
@@ -10,40 +10,29 @@ Portability : POSIX
 Count API part of Gargantext.
 -}
 
-{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
-
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE TemplateHaskell    #-}
 {-# LANGUAGE TypeOperators      #-}
-{-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE DeriveAnyClass     #-}
-{-# LANGUAGE OverloadedStrings  #-}
 
 module Gargantext.API.Count
       where
 
-
-import GHC.Generics (Generic)
-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.List (permutations)
 import Data.Swagger
 import Data.Text (Text, pack)
-
+import GHC.Generics (Generic)
+import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger)
+import Gargantext.Prelude
 import Servant
-import Test.QuickCheck.Arbitrary
 import Test.QuickCheck (elements)
--- import Control.Applicative ((<*>))
-
-import Gargantext.Prelude
-import Gargantext.Core.Utils.Prefix (unPrefix)
+import Test.QuickCheck.Arbitrary
 
 -----------------------------------------------------------------------
+-- TODO-ACCESS: CanCount
+-- TODO-EVENTS: No events as this is a read only query.
 type CountAPI = Post '[JSON] Counts
 
 -----------------------------------------------------------------------
@@ -67,6 +56,7 @@ data QueryBool = QueryBool Text
 
 queries :: [QueryBool]
 queries =  [QueryBool (pack "(X OR X') AND (Y OR Y') NOT (Z OR Z')")]
+--queries =  [QueryBool (pack "(X + X') * (Y + Y') - (Z + Z')")]
 
 instance Arbitrary QueryBool where
     arbitrary = elements queries
@@ -90,7 +80,9 @@ instance Arbitrary Query where
                          , n <- take 10 $ permutations scrapers
                          ]
 
-instance ToSchema Query
+instance ToSchema Query where
+  declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "query_")
+
 -----------------------------------------------------------------------
 type Code = Integer
 type Error  = Text
@@ -141,10 +133,11 @@ data Count = Count { count_name    :: Scraper
 
 $(deriveJSON (unPrefix "count_") ''Count)
 
-instance ToSchema Count
+instance ToSchema Count where
+  declareNamedSchema = genericDeclareNamedSchema (unPrefixSwagger "count_")
 --instance Arbitrary Count where
 --    arbitrary = Count <$> arbitrary <*> arbitrary <*> arbitrary
 
 -----------------------------------------------------------------------
-count :: Query -> Handler Counts
+count :: Monad m => Query -> m Counts
 count _ = undefined