[FIX] dep with cabal file
[gargantext.git] / src / Gargantext / Core.hs
index f087f477ee3824bf9283c168920736d1f0485a91..36e4a43e4e1762d38058b59ccfc23591294d02de 100644 (file)
@@ -12,6 +12,12 @@ Portability : POSIX
 module Gargantext.Core
   where
 
+import Gargantext.Prelude
+import GHC.Generics (Generic)
+import Data.Aeson
+import Data.Either(Either(Left))
+import Data.Swagger
+import Servant.API
 ------------------------------------------------------------------------
 -- | Language of a Text
 -- For simplicity, we suppose text has an homogenous language
@@ -25,8 +31,20 @@ module Gargantext.Core
 --  - SP == spanish (not implemented yet)
 --
 --  ... add your language and help us to implement it (:
-data Lang = EN | FR -- | DE | SP | CH
-  deriving (Show, Eq, Ord, Bounded, Enum)
 
+-- | All languages supported
+-- TODO : DE | SP | CH
+data Lang = EN | FR | All
+  deriving (Show, Eq, Ord, Bounded, Enum, Generic)
+
+instance ToJSON Lang
+instance FromJSON Lang
+instance ToSchema Lang
+instance FromHttpApiData Lang
+  where
+    parseUrlPiece "EN" = pure EN
+    parseUrlPiece "FR" = pure FR
+    parseUrlPiece "All" = pure All
+    parseUrlPiece _            = Left "Unexpected value of OrderBy"
 allLangs :: [Lang]
 allLangs = [minBound ..]