blob: 1c62663f86d6508ecfcaa0cc4e6a242dab24de57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{-# LANGUAGE FlexibleContexts #-}
-- | mostly the monad the service runs in
module Server.Util (Service, ServiceM, runService, redirect) where
import Control.Monad.Logger (LoggingT, runStderrLoggingT)
import Data.ByteString (ByteString)
import Servant (Handler, ServerError, ServerT, err302,
errHeaders, throwError)
type ServiceM = LoggingT Handler
type Service api = ServerT api ServiceM
runService :: ServiceM a -> Handler a
runService = runStderrLoggingT
redirect :: ByteString -> ServiceM a
redirect path = throwError $ err302 { errHeaders = [("Location", path)] }
|