summaryrefslogtreecommitdiff
path: root/fig-web/src/Fig/Web/Module
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-01-03 21:59:46 -0500
committerLLLL Colonq <llll@colonq>2026-01-03 21:59:46 -0500
commitff02141235d1dbec3492c5a7b49631fe440c4806 (patch)
tree96fb1e2dd08d6b97ddf251e971c5845957692ce9 /fig-web/src/Fig/Web/Module
parentbe79bc5f0a1435a8ba34b163218a44b93cca503d (diff)
web: Add Shindigs sorting endpoints
Diffstat (limited to 'fig-web/src/Fig/Web/Module')
-rw-r--r--fig-web/src/Fig/Web/Module/Debt.hs1
-rw-r--r--fig-web/src/Fig/Web/Module/ShindigsSorting.hs31
2 files changed, 31 insertions, 1 deletions
diff --git a/fig-web/src/Fig/Web/Module/Debt.hs b/fig-web/src/Fig/Web/Module/Debt.hs
index 31731b9..883a394 100644
--- a/fig-web/src/Fig/Web/Module/Debt.hs
+++ b/fig-web/src/Fig/Web/Module/Debt.hs
@@ -6,7 +6,6 @@ import Fig.Prelude
import Data.Maybe (mapMaybe)
import qualified Data.Map.Strict as Map
-import qualified Data.ByteString as BS
import Fig.Web.Utils
import Fig.Web.Types
diff --git a/fig-web/src/Fig/Web/Module/ShindigsSorting.hs b/fig-web/src/Fig/Web/Module/ShindigsSorting.hs
new file mode 100644
index 0000000..516f2a2
--- /dev/null
+++ b/fig-web/src/Fig/Web/Module/ShindigsSorting.hs
@@ -0,0 +1,31 @@
+module Fig.Web.Module.ShindigsSorting
+ ( public
+ , publicWebsockets
+ ) where
+
+import Fig.Prelude
+
+import qualified Control.Concurrent.Chan as Chan
+
+import qualified Data.Aeson as Aeson
+
+import qualified Network.WebSockets as WS
+
+import Fig.Web.Utils
+import Fig.Web.Types
+
+public :: PublicModule
+public a = do
+ onPost "/api/shindigssort" do
+ b :: ShindigsSort <- bodyJSON
+ liftIO $ Chan.writeChan a.channels.shindigssort b
+
+publicWebsockets :: PublicWebsockets
+publicWebsockets a =
+ [ ( "/api/shindigssort/events", \conn -> do
+ c <- Chan.dupChan a.channels.shindigssort
+ forever do
+ ev <- liftIO $ Chan.readChan c
+ WS.sendTextData conn $ Aeson.encode ev
+ )
+ ]