Add client function for main GraphQL endpoint
[gargantext.git] / src / Gargantext / Core / Utils / Prefix.hs
index 8f53d28c0e1f5983a5826ef39c8fe49e64f9c995..2662b7694466507c0809ba7a3ff0e8f5dcc28d60 100644 (file)
@@ -11,19 +11,21 @@ Here is a longer description of this module, containing some
 commentary with @some markup@.
 -}
 
-{-# LANGUAGE NoImplicitPrelude #-}
 
-module Gargantext.Core.Utils.Prefix where
+module Gargantext.Core.Utils.Prefix
+  ( module Gargantext.Core.Utils.Prefix
+  , wellNamedSchema
+  ) where
 
 import Prelude
 
 import Data.Aeson (Value, defaultOptions, parseJSON)
-import Data.Aeson.TH (Options, fieldLabelModifier, omitNothingFields)
+import Data.Aeson.TH (Options, fieldLabelModifier, omitNothingFields, sumEncoding, SumEncoding(UntaggedValue))
 import Data.Aeson.Types (Parser)
 import Data.Char (toLower)
-import Data.Monoid ((<>))
 import Data.Swagger.SchemaOptions (SchemaOptions, fromAesonOptions)
-import Text.Read (Read(..),readMaybe)
+import Servant.Job.Utils (wellNamedSchema)
+import Text.Read (readMaybe)
 
 
 -- | Aeson Options that remove the prefix from fields
@@ -33,6 +35,10 @@ unPrefix prefix = defaultOptions
   , omitNothingFields = True
   }
 
+unPrefixUntagged :: String -> Options
+unPrefixUntagged prefix = (unPrefix prefix)
+  { sumEncoding = UntaggedValue }
+
 unPrefixSwagger :: String -> SchemaOptions
 unPrefixSwagger = fromAesonOptions . unPrefix