summaryrefslogtreecommitdiff
path: root/fig-frontend/src/Fig/Frontend/DB.hs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2024-02-23 19:30:52 -0500
committerLLLL Colonq <llll@colonq>2024-02-23 19:31:11 -0500
commit4a23754fc6515c947e0bbac38cd0e558b701fe2f (patch)
tree75c487c3ee77c3aef58eb33f3ff9018d4bd6dcdc /fig-frontend/src/Fig/Frontend/DB.hs
parent6942ffa61fe93dc6872f97d1a0b7683614e8c7e4 (diff)
Add poke API
Diffstat (limited to 'fig-frontend/src/Fig/Frontend/DB.hs')
-rw-r--r--fig-frontend/src/Fig/Frontend/DB.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/fig-frontend/src/Fig/Frontend/DB.hs b/fig-frontend/src/Fig/Frontend/DB.hs
index d0641de..5ca8772 100644
--- a/fig-frontend/src/Fig/Frontend/DB.hs
+++ b/fig-frontend/src/Fig/Frontend/DB.hs
@@ -24,3 +24,23 @@ hget c key hkey = liftIO $ Redis.runRedis c do
hvals :: MonadIO m => Redis.Connection -> ByteString -> m (Maybe [ByteString])
hvals c key = liftIO $ Redis.runRedis c do
hush <$> Redis.hvals key
+
+sadd :: MonadIO m => Redis.Connection -> ByteString -> [ByteString] -> m ()
+sadd c key skeys = liftIO $ Redis.runRedis c do
+ _ <- Redis.sadd key skeys
+ pure ()
+
+srem :: MonadIO m => Redis.Connection -> ByteString -> [ByteString] -> m ()
+srem c key skeys = liftIO $ Redis.runRedis c do
+ _ <- Redis.srem key skeys
+ pure ()
+
+smembers :: MonadIO m => Redis.Connection -> ByteString -> m (Maybe [ByteString])
+smembers c key = liftIO $ Redis.runRedis c do
+ hush <$> Redis.smembers key
+
+sismember :: MonadIO m => Redis.Connection -> ByteString -> ByteString -> m Bool
+sismember c key skey = liftIO $ Redis.runRedis c do
+ Redis.sismember key skey >>= hush >>> \case
+ Just x -> pure x
+ Nothing -> pure False