From 3f99bf132c68fbd03a56ead3ee1a77d97fc64dc7 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Sun, 11 Apr 2010 13:05:40 -0700 Subject: [PATCH] Send 404 response properly --- Yesod/Yesod.hs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Yesod/Yesod.hs b/Yesod/Yesod.hs index 2480b44e..86a65762 100644 --- a/Yesod/Yesod.hs +++ b/Yesod/Yesod.hs @@ -144,15 +144,14 @@ toWaiApp' y resource session env = do types = httpAccept env pathSegments = cleanupSegments resource eurl = parsePathSegments site pathSegments - case eurl of - Left _ -> error "FIXME: send 404 message" - Right url -> do - rr <- parseWaiRequest env session - onRequest y rr - let render u = approot y ++ '/' - : encodePathInfo (formatPathSegments site u) - res <- handleSite site render url errorHandler rr types - responseToWaiResponse res + render u = approot y ++ '/' + : encodePathInfo (formatPathSegments site u) + rr <- parseWaiRequest env session + onRequest y rr + let ya = case eurl of + Left _ -> runHandler (errorHandler NotFound) y render + Right url -> handleSite site render url + ya errorHandler rr types >>= responseToWaiResponse getMethod :: (String -> YesodApp y) -> YesodApp y getMethod f eh req cts =