Webanwendung mit FastCGI und Haskell
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

32 Zeilen
798B

  1. module Routing (
  2. routeRequest
  3. ) where
  4. import Control.Applicative ((<|>))
  5. import Network.URI
  6. import Network.FastCGI
  7. import App.Startpage
  8. import App.Info
  9. import App.Login
  10. import App.Logout
  11. import App.Error
  12. import App.Private
  13. import Request
  14. import AppMonad
  15. routeRequest :: URI -> App CGIResult
  16. routeRequest uri = do
  17. let path = uriPath uri
  18. mayHandler = handlePath path "^/info" Info
  19. <|> handlePath path "^/login" Login
  20. <|> handlePath path "^/logout" Logout
  21. <|> handlePath path "^/register" Register
  22. <|> handlePath path "^/private" Private
  23. <|> handlePath path "^/$" Startpage
  24. case mayHandler of
  25. Just handler -> handleRequest handler
  26. Nothing -> handleRequest PageNotFound