From d154002e063c1c3af5aba13cf05a11df8b8f9897 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 27 Sep 2016 12:36:37 -0400 Subject: Server: --motd can be used to provide a Message Of The Day. This commit was sponsored by Anthony DeRobertis on Patreon. --- HTTP/Server.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'HTTP') diff --git a/HTTP/Server.hs b/HTTP/Server.hs index c667601..f2ecfa8 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -24,6 +24,7 @@ import Control.Monad.IO.Class import Control.Concurrent import Control.Concurrent.Thread.Delay import Control.Concurrent.STM +import Data.Maybe import Data.String import qualified Data.ByteString as B @@ -32,6 +33,7 @@ data ServerState = ServerState , storage :: Storage , rateLimiter :: RateLimiter , logger :: Logger + , serverConfig :: ServerConfig } newServerState :: Maybe LocalStorageDirectory -> ServerConfig -> IO ServerState @@ -42,6 +44,7 @@ newServerState d cfg = do <*> pure (serverStorage d) <*> newRateLimiter cfg d l <*> pure l + <*> pure cfg runServer :: Maybe LocalStorageDirectory -> ServerConfig -> IO () runServer d cfg = do @@ -62,13 +65,13 @@ userAPI :: Proxy HttpAPI userAPI = Proxy server :: ServerState -> Server HttpAPI -server st = motd +server st = motd st :<|> getObject st :<|> putObject st :<|> countObjects st -motd :: Handler Motd -motd = return $ Motd "Hello World!" +motd :: ServerState -> Handler Motd +motd = return . Motd . fromMaybe "Hello World!" . serverMotd . serverConfig getObject :: ServerState -> StorableObjectIdent -> Maybe ProofOfWork -> Handler (POWGuarded StorableObject) getObject st i pow = rateLimit (rateLimiter st) (logger st) pow i $ do -- cgit v1.2.3