summaryrefslogtreecommitdiffhomepage
path: root/HTTP
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-08-22 12:07:17 -0400
committerJoey Hess <joeyh@joeyh.name>2016-08-22 12:23:53 -0400
commit1e12f0574214cd68b2d201889ff15e79a5cc0076 (patch)
treee086991e403591205fa73d25129bfac1fc9b1ac8 /HTTP
parent7ed6961a0e0ef713c136a9d36f86bc7e31414dc5 (diff)
downloadkeysafe-1e12f0574214cd68b2d201889ff15e79a5cc0076.tar.gz
return ProofOfWorkRequirement t
This way the requirement can be varied for different operations.
Diffstat (limited to 'HTTP')
-rw-r--r--HTTP/Client.hs8
-rw-r--r--HTTP/Server.hs18
2 files changed, 10 insertions, 16 deletions
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