module Data.YQL.Response
( Response(..)
, pattern ResponseJSON
, pattern ResponseByteString
, object ) where
import Control.Lens
import Data.Aeson (Value)
import Data.ByteString.Lazy
data Response
= Response
{ responseObject :: Either Value ByteString }
pattern ResponseJSON v = Response (Left v)
pattern ResponseByteString s = Response (Right s)
instance Show Response where
show (Response (Left v)) = show v
show (Response (Right s)) = show s
object :: Lens' Response (Either Value ByteString)
object = lens responseObject (\r o -> r { responseObject = o })