Webanwendung mit FastCGI und Haskell
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

32 рядки
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