diff options
| author | LLLL Colonq <llll@colonq> | 2024-02-23 19:30:52 -0500 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2024-02-23 19:31:11 -0500 |
| commit | 4a23754fc6515c947e0bbac38cd0e558b701fe2f (patch) | |
| tree | 75c487c3ee77c3aef58eb33f3ff9018d4bd6dcdc /fig-frontend/src/Fig/Frontend.hs | |
| parent | 6942ffa61fe93dc6872f97d1a0b7683614e8c7e4 (diff) | |
Add poke API
Diffstat (limited to 'fig-frontend/src/Fig/Frontend.hs')
| -rw-r--r-- | fig-frontend/src/Fig/Frontend.hs | 17 |
1 files changed, 17 insertions, 0 deletions
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" ] |
