solidabis-koodihaaste/src/Data/Config.hs

24 lines
727 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
module Data.Config where
import Server (Port)
import Solidabis.API (Token)
import Control.Monad.Trans (MonadIO, liftIO)
import Data.Aeson (FromJSON)
import Data.Yaml.Config
import GHC.Generics (Generic)
import Servant.Client (BaseUrl)
data Config
= Config { _accessToken :: Token
, _solidabisBase :: BaseUrl
, _port :: Port
, _training :: FilePath }
deriving (Show, Generic)
instance FromJSON Config
readConfigFromFile :: MonadIO m => FilePath -> m Config
readConfigFromFile path = liftIO $ loadYamlSettings [path] [] ignoreEnv