{-# LANGUAGE OverloadedStrings, NoMonomorphismRestriction #-} module Test.WebDriver.Types.Internal ( WDResponse(..) ) where import Test.WebDriver.Types import Data.Aeson import Data.Aeson.Types import Control.Applicative import Data.Word data WDResponse = WDResponse { rspSessId :: Maybe SessionId , rspStatus :: Word8 , rspVal :: Value } deriving (Eq, Show) instance FromJSON WDResponse where parseJSON (Object o) = WDResponse <$> req "sessionId" <*> req "status" <*> opt "value" Null where req = (o .:) opt k d = o .: k .!= d parseJSON v = typeMismatch "WDResponse" v