diff options
| author | LLLL Colonq <llll@colonq> | 2026-01-03 21:59:46 -0500 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-01-03 21:59:46 -0500 |
| commit | ff02141235d1dbec3492c5a7b49631fe440c4806 (patch) | |
| tree | 96fb1e2dd08d6b97ddf251e971c5845957692ce9 /fig-web/src/Fig/Web/Module | |
| parent | be79bc5f0a1435a8ba34b163218a44b93cca503d (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.hs | 1 | ||||
| -rw-r--r-- | fig-web/src/Fig/Web/Module/ShindigsSorting.hs | 31 |
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 + ) + ] |
