{-# 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"