{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoImplicitPrelude #-}

module IO.HTTP.Aeson where

import ClassyPrelude

import           Data.Aeson          (defaultOptions, fieldLabelModifier)
import qualified Data.Aeson.TH       as TH (deriveFromJSON)
import           Language.Haskell.TH (Dec, Name, Q)

import Data.FileEmbed (embedFile)

deriveFromJSON :: Name -> Q [Dec]
deriveFromJSON = TH.deriveFromJSON defaultOptions {fieldLabelModifier = drop 1}

parseError :: String -> Text
parseError err = decodeUtf8 $(embedFile "templates/api-error.txt") <> "\n\n" <> pack err