packages feed

hanabi-dealer-0.15.1.1: all.hs

{-# LANGUAGE OverloadedStrings, CPP #-}
import Network.Wai
import Network.HTTP.Types
import Network.Wai.Handler.Warp (run)

import Game.Hanabi.Client(clientApp)
import Game.Hanabi.Backend(hanabiApp)
import Game.Hanabi.Msg(defaultOptions, Options(..))

import Game.Hanabi.Strategies(predefinedStrategies)

main :: IO ()
main = do putStrLn "localhost:8080"  -- Seemingly other port than 8080 does not work.
          let opt = defaultOptions{version="hanabi-dealer quickbuilt server", strategies=predefinedStrategies}
          capp <- clientApp opt
          bapp <- hanabiApp opt $ \_ resp -> resp $ responseLBS status400 [("Content-Type", "text/plain")] "400 Not a WebSocket request."
          run 8080 $ route capp bapp
route :: Application -> Application -> Application
route capp bapp request respond = case rawPathInfo request of
    "/ws/" -> bapp request respond
    _      -> capp request respond
--    _      -> respond $ responseLBS status404 [("Content-Type", "text/plain")] "404 Not found"