From 4a7ab38bf416fc5eb6f7602cc97146f9b06ec627 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Tue, 23 Jan 2024 17:07:01 -0500 Subject: Add songs endpoint to API --- fig-frontend/src/Fig/Frontend.hs | 5 +++++ fig-frontend/src/Fig/Frontend/DB.hs | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'fig-frontend') diff --git a/fig-frontend/src/Fig/Frontend.hs b/fig-frontend/src/Fig/Frontend.hs index aff74c8..95ab28b 100644 --- a/fig-frontend/src/Fig/Frontend.hs +++ b/fig-frontend/src/Fig/Frontend.hs @@ -14,6 +14,7 @@ import qualified Web.Twain as Tw import qualified Lucid as L import qualified Lucid.Base as L +import Fig.Utils.SExpr import Fig.Frontend.Utils import Fig.Frontend.Auth import Fig.Frontend.State @@ -55,4 +56,8 @@ app cfg = do DB.get db ("user:" <> encodeUtf8 name) >>= \case Nothing -> Tw.send . Tw.status Tw.status404 $ Tw.text "user not found" Just val -> Tw.send . Tw.text $ decodeUtf8 val + , Tw.get "/api/songs" do + DB.hvals db "songnames" >>= \case + Nothing -> Tw.send . Tw.status Tw.status404 $ Tw.text "no sounds found :(" + Just songs -> Tw.send . Tw.text . pretty . SExprList @Void $ SExprString . decodeUtf8 <$> songs ] diff --git a/fig-frontend/src/Fig/Frontend/DB.hs b/fig-frontend/src/Fig/Frontend/DB.hs index 0425f67..0ae8058 100644 --- a/fig-frontend/src/Fig/Frontend/DB.hs +++ b/fig-frontend/src/Fig/Frontend/DB.hs @@ -15,3 +15,7 @@ get :: MonadIO m => Redis.Connection -> ByteString -> m (Maybe ByteString) get c key = liftIO $ Redis.runRedis c do v <- Redis.get key pure $ join $ hush v + +hvals :: MonadIO m => Redis.Connection -> ByteString -> m (Maybe [ByteString]) +hvals c key = liftIO $ Redis.runRedis c do + hush <$> Redis.hvals key -- cgit v1.2.3