diff options
Diffstat (limited to 'lib/Server/Util.hs')
-rw-r--r-- | lib/Server/Util.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Server/Util.hs b/lib/Server/Util.hs index 45c2477..1c62663 100644 --- a/lib/Server/Util.hs +++ b/lib/Server/Util.hs @@ -1,13 +1,18 @@ - +{-# LANGUAGE FlexibleContexts #-} -- | mostly the monad the service runs in -module Server.Util (Service, ServiceM, runService) where +module Server.Util (Service, ServiceM, runService, redirect) where import Control.Monad.Logger (LoggingT, runStderrLoggingT) -import Servant (Handler, ServerT) +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)] } |