summaryrefslogtreecommitdiffhomepage
path: root/HTTP
diff options
context:
space:
mode:
Diffstat (limited to 'HTTP')
-rw-r--r--HTTP/Server.hs9
1 files changed, 6 insertions, 3 deletions
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