implement clientRemove

Tested removal.
This commit is contained in:
Joey Hess 2024-07-10 09:19:58 -04:00
parent 48f76cb3e8
commit b8a26712c6
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 28 additions and 9 deletions

View file

@ -71,7 +71,7 @@ seek o = startConcurrency commandStages $ do
-- XXX remove this -- XXX remove this
when (isNothing (portOption o)) $ do when (isNothing (portOption o)) $ do
liftIO $ putStrLn "test begins" liftIO $ putStrLn "test begins"
testCheckPresent testRemove
giveup "TEST DONE" giveup "TEST DONE"
withLocalP2PConnections $ \acquireconn -> liftIO $ do withLocalP2PConnections $ \acquireconn -> liftIO $ do
authenv <- getAuthEnv authenv <- getAuthEnv
@ -155,3 +155,16 @@ testCheckPresent = do
[] []
Nothing Nothing
liftIO $ print res liftIO $ print res
testRemove = do
mgr <- httpManager <$> getUrlOptions
burl <- liftIO $ parseBaseUrl "http://localhost:8080/"
res <- liftIO $ clientRemove (mkClientEnv mgr burl)
(P2P.ProtocolVersion 3)
(B64Key (fromJust $ deserializeKey ("WORM-s30-m1720547401--foo" :: String)))
(B64UUID (toUUID ("cu" :: String)))
(B64UUID (toUUID ("f11773f0-11e1-45b2-9805-06db16768efe" :: String)))
[]
Nothing
liftIO $ print res

View file

@ -240,20 +240,26 @@ serveRemove st resultmangle apiver (B64Key k) cu su bypass sec auth = do
err500 { errBody = encodeBL err } err500 { errBody = encodeBL err }
clientRemove clientRemove
:: ProtocolVersion :: ClientEnv
-> ProtocolVersion
-> B64Key -> B64Key
-> B64UUID ClientSide -> B64UUID ClientSide
-> B64UUID ServerSide -> B64UUID ServerSide
-> [B64UUID Bypass] -> [B64UUID Bypass]
-> Maybe Auth -> Maybe Auth
-> ClientM RemoveResultPlus -> IO RemoveResultPlus
clientRemove (ProtocolVersion ver) k cu su bypass auth = case ver of clientRemove clientenv (ProtocolVersion ver) key cu su bypass auth =
3 -> v3 V3 k cu su bypass auth withClientM cli clientenv $ \case
2 -> v2 V2 k cu su bypass auth Left err -> throwM err
1 -> plus <$> v1 V1 k cu su bypass auth Right res -> return res
0 -> plus <$> v0 V0 k cu su bypass auth
_ -> error "unsupported protocol version"
where where
cli = case ver of
3 -> v3 V3 key cu su bypass auth
2 -> v2 V2 key cu su bypass auth
1 -> plus <$> v1 V1 key cu su bypass auth
0 -> plus <$> v0 V0 key cu su bypass auth
_ -> error "unsupported protocol version"
_ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|>
_ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|> _ :<|>
v3 :<|> v2 :<|> v1 :<|> v0 :<|> _ = client p2pHttpAPI v3 :<|> v2 :<|> v1 :<|> v0 :<|> _ = client p2pHttpAPI