matebeamter/src/Main.hs
2019-09-08 17:27:38 +02:00

46 lines
891 B
Haskell

module Main where
import Servant
import Servant.Server
import Network.Wai.Handler.Warp
import Network.Wai.Logger
import Network.HTTP.Client hiding (Proxy)
import Control.Monad.Reader
import Data.Text.I18n
import Data.Text.I18n.Po
-- internal imports
import API
import Types
import View
import Control
main :: IO ()
main = do
manager <- newManager defaultManagerSettings
(l10n, _) <- getL10n "./locales"
withStdoutLogger $ \ilog -> do
let settings = setPort 3000 $ setLogger ilog defaultSettings
initState = ReadState
{ rsManager = manager
, rsL10n = l10n
}
runSettings settings (userApp initState)
userApp initState = serveWithContext userApi (EmptyContext) $
hoistServerWithContext
userApi
Proxy
(`runReaderT` initState)
( authControl
:<|> userListControl
)
userApi :: Proxy UserAPI
userApi = Proxy