From 4a23754fc6515c947e0bbac38cd0e558b701fe2f Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 23 Feb 2024 19:30:52 -0500 Subject: Add poke API --- fig-frontend/src/Fig/Frontend.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'fig-frontend/src/Fig/Frontend.hs') diff --git a/fig-frontend/src/Fig/Frontend.hs b/fig-frontend/src/Fig/Frontend.hs index 3cab953..b1c6aed 100644 --- a/fig-frontend/src/Fig/Frontend.hs +++ b/fig-frontend/src/Fig/Frontend.hs @@ -65,4 +65,21 @@ app cfg = do DB.hget db "songnotes" hash >>= \case Nothing -> Tw.send . Tw.status Tw.status404 $ Tw.text "song not found" Just val -> Tw.send . Tw.text $ decodeUtf8 val + , Tw.get "/api/poke/:name" do + target <- encodeUtf8 . toLower <$> Tw.param "name" + inbox <- fromMaybe [] <$> DB.smembers db ("pokeinbox:" <> target) + Tw.send . Tw.text . pretty . SExprList @Void $ SExprString . decodeUtf8 <$> inbox + , Tw.post "/api/poke/:name" do + me <- encodeUtf8 . toLower <$> Tw.param "ayem" + target <- encodeUtf8 . toLower <$> Tw.param "name" + DB.sismember db ("pokeinbox:" <> me) target >>= \case + True -> do + log . tshow $ "handshake between " <> me <> " and " <> target <> " complete!" + DB.srem db ("pokeinbox:" <> target) [me] + DB.srem db ("pokeinbox:" <> me) [target] + Tw.send $ Tw.text "complete" + False -> do + log . tshow $ "partial handshake from " <> me <> " to " <> target + DB.sadd db ("pokeinbox:" <> target) [me] + Tw.send $ Tw.text "partial" ] -- cgit v1.2.3