diff --git a/Web/Twitter/Conduit/Base.hs b/Web/Twitter/Conduit/Base.hs index a85b117..4851944 100644 --- a/Web/Twitter/Conduit/Base.hs +++ b/Web/Twitter/Conduit/Base.hs @@ -116,10 +116,12 @@ checkResponse :: Response Value -> Either TwitterError Value checkResponse Response{..} = case responseBody ^? key "errors" of - Just errs -> + Just errs@(Array _) -> case fromJSON errs of Success errList -> Left $ TwitterErrorResponse responseStatus responseHeaders errList Error msg -> Left $ FromJSONError msg + Just err -> + Left $ TwitterUnknownErrorResponse responseStatus responseHeaders err Nothing -> if sci < 200 || sci > 400 then Left $ TwitterStatusError responseStatus responseHeaders responseBody diff --git a/Web/Twitter/Conduit/Response.hs b/Web/Twitter/Conduit/Response.hs index f047d00..ec6fddc 100644 --- a/Web/Twitter/Conduit/Response.hs +++ b/Web/Twitter/Conduit/Response.hs @@ -28,6 +28,7 @@ data Response responseType = Response data TwitterError = FromJSONError String | TwitterErrorResponse Status ResponseHeaders [TwitterErrorMessage] + | TwitterUnknownErrorResponse Status ResponseHeaders Value | TwitterStatusError Status ResponseHeaders Value deriving (Show, Typeable, Eq)