Merge pull request #83 from begriffs/404
Issue 404 for nonexistent tables
This commit is contained in:
+5
-5
@@ -18,7 +18,7 @@ import Control.Exception (finally, throw, catchJust, catch, SomeException,
|
|||||||
|
|
||||||
import Network.HTTP.Types.Header (RequestHeaders, hContentType, hAuthorization,
|
import Network.HTTP.Types.Header (RequestHeaders, hContentType, hAuthorization,
|
||||||
hLocation)
|
hLocation)
|
||||||
import Network.HTTP.Types.Status (status400, status401, status301)
|
import Network.HTTP.Types.Status (status400, status401, status404, status301)
|
||||||
import Network.Wai (Application, requestHeaders, responseLBS, rawPathInfo,
|
import Network.Wai (Application, requestHeaders, responseLBS, rawPathInfo,
|
||||||
rawQueryString, isSecure)
|
rawQueryString, isSecure)
|
||||||
import Network.URI (URI(..), parseURI)
|
import Network.URI (URI(..), parseURI)
|
||||||
@@ -72,10 +72,10 @@ instance ToJSON SqlError where
|
|||||||
|
|
||||||
clientErrors :: Application -> Application
|
clientErrors :: Application -> Application
|
||||||
clientErrors app req respond =
|
clientErrors app req respond =
|
||||||
catchJust isPgException (app req respond) (
|
catchJust isPgException (app req respond) $ \err ->
|
||||||
respond . responseLBS status400 [(hContentType, "application/json")]
|
respond $ if seState err == "42P01"
|
||||||
. encode
|
then responseLBS status404 [] ""
|
||||||
)
|
else responseLBS status400 [(hContentType, "application/json")] (encode err)
|
||||||
|
|
||||||
where
|
where
|
||||||
isPgException :: SqlError -> Maybe SqlError
|
isPgException :: SqlError -> Maybe SqlError
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ import SpecHelper
|
|||||||
|
|
||||||
spec :: Spec
|
spec :: Spec
|
||||||
spec = around appWithFixture $ do
|
spec = around appWithFixture $ do
|
||||||
|
describe "Querying a nonexistent table" $
|
||||||
|
it "causes a 404" $
|
||||||
|
get "/faketable" `shouldRespondWith` 404
|
||||||
|
|
||||||
describe "Filtering response" $
|
describe "Filtering response" $
|
||||||
context "column equality" $
|
context "column equality" $
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user