]> Git — Sourcephile - gargantext.git/blob - src/Gargantext/Core.hs
[Clean]
[gargantext.git] / src / Gargantext / Core.hs
1 {-|
2 Module : Gargantext.Core
3 Description : Supported Natural language
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
8 Portability : POSIX
9
10 -}
11
12 {-# LANGUAGE TemplateHaskell #-}
13
14 module Gargantext.Core
15 where
16
17 import Gargantext.Prelude
18 import GHC.Generics (Generic)
19 import Data.Aeson
20 import Data.Either(Either(Left))
21 import Data.Swagger
22 import Servant.API
23 ------------------------------------------------------------------------
24 -- | Language of a Text
25 -- For simplicity, we suppose text has an homogenous language
26 --
27 -- Next steps: | DE | IT | SP
28 --
29 -- - EN == english
30 -- - FR == french
31 -- - DE == deutch (not implemented yet)
32 -- - IT == italian (not implemented yet)
33 -- - SP == spanish (not implemented yet)
34 --
35 -- ... add your language and help us to implement it (:
36
37 -- | All languages supported
38 -- TODO : DE | SP | CH
39 data Lang = EN | FR | All
40 deriving (Show, Eq, Ord, Bounded, Enum, Generic)
41
42 instance ToJSON Lang
43 instance FromJSON Lang
44 instance ToSchema Lang
45 instance FromHttpApiData Lang
46 where
47 parseUrlPiece "EN" = pure EN
48 parseUrlPiece "FR" = pure FR
49 parseUrlPiece "All" = pure All
50 parseUrlPiece _ = Left "Unexpected value of OrderBy"
51 allLangs :: [Lang]
52 allLangs = [minBound ..]