matebeamter/src/Main.hs

41 lines
779 B
Haskell
Raw Normal View History

2019-09-06 23:57:25 +00:00
module Main where
2019-09-08 00:37:50 +00:00
import Servant
import Servant.Server
import Network.Wai.Handler.Warp
import Network.Wai.Logger
2019-09-08 10:48:57 +00:00
import Network.HTTP.Client hiding (Proxy)
import Control.Monad.Reader
2019-09-08 00:37:50 +00:00
-- internal imports
import API
import Types
import View
2019-09-08 10:48:57 +00:00
import Control
2019-09-08 00:37:50 +00:00
2019-09-06 23:57:25 +00:00
main :: IO ()
2019-09-08 00:37:50 +00:00
main = do
2019-09-08 10:48:57 +00:00
manager <- newManager defaultManagerSettings
2019-09-08 00:37:50 +00:00
withStdoutLogger $ \ilog -> do
let settings = setPort 3000 $ setLogger ilog defaultSettings
2019-09-08 10:48:57 +00:00
initState = ReadState
{ rsManager = manager
}
runSettings settings (userApp initState)
userApp initState = serveWithContext userApi (EmptyContext) $
hoistServerWithContext
userApi
Proxy
(`runReaderT` initState)
( authControl
:<|> userListControl
)
2019-09-08 00:37:50 +00:00
userApi :: Proxy UserAPI
userApi = Proxy