From 1e12f0574214cd68b2d201889ff15e79a5cc0076 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 22 Aug 2016 12:07:17 -0400 Subject: return ProofOfWorkRequirement t This way the requirement can be varied for different operations. --- HTTP/Client.hs | 8 +++----- HTTP/Server.hs | 18 +++++++----------- 2 files changed, 10 insertions(+), 16 deletions(-) (limited to 'HTTP') diff --git a/HTTP/Client.hs b/HTTP/Client.hs index e4e9b67..2120217 100644 --- a/HTTP/Client.hs +++ b/HTTP/Client.hs @@ -15,13 +15,11 @@ import Network.HTTP.Client (Manager) apiVersion :: Manager -> BaseUrl -> ClientM APIVersion motd :: Manager -> BaseUrl -> ClientM Motd -proofOfWorkRequirement :: Manager -> BaseUrl -> ClientM (Maybe ProofOfWorkRequirement) -getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM StorableObject -putObject :: StorableObjectIdent -> Maybe ProofOfWork -> Types.StorableObject -> Manager -> BaseUrl -> ClientM StoreResult -countObjects :: Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM CountResult +getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement StorableObject) +putObject :: StorableObjectIdent -> Maybe ProofOfWork -> Types.StorableObject -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement StoreResult) +countObjects :: Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement CountResult) apiVersion :<|> motd - :<|> proofOfWorkRequirement :<|> getObject :<|> putObject :<|> countObjects = client (Proxy :: Proxy HttpAPI) diff --git a/HTTP/Server.hs b/HTTP/Server.hs index a6b0f2d..e941158 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -17,7 +17,7 @@ import Data.Proxy import Network.Wai import Network.Wai.Handler.Warp -runServer :: Int -> IO () +runServer :: Port -> IO () runServer port = run port app app :: Application @@ -29,7 +29,6 @@ userAPI = Proxy server :: Server HttpAPI server = apiVersion :<|> motd - :<|> proofOfWorkRequirement :<|> getObject :<|> putObject :<|> countObjects @@ -40,14 +39,11 @@ apiVersion = return (APIVersion 1) motd :: Handler Motd motd = return $ Motd "Hello World!" -proofOfWorkRequirement :: Handler (Maybe ProofOfWorkRequirement) -proofOfWorkRequirement = return $ Just $ ProofOfWorkRequirement 3 1 +getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Handler (ProofOfWorkRequirement StorableObject) +getObject _i _pow = return $ ProofOfWorkRequirement 10 10 -getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Handler StorableObject -getObject _i _pow = undefined +putObject :: StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Handler (ProofOfWorkRequirement StoreResult) +putObject _i _pow _o = return $ Result StoreSuccess -putObject :: StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Handler StoreResult -putObject _i _pow _o = return StoreSuccess - -countObjects :: Maybe ProofOfWork -> Handler CountResult -countObjects _pow = return $ CountResult 42 +countObjects :: Maybe ProofOfWork -> Handler (ProofOfWorkRequirement CountResult) +countObjects _pow = return $ Result $ CountResult 42 -- cgit v1.2.3