bitx-bitcoin-0.5.0.0: src/Network/Bitcoin/BitX/Response.hs
{-# LANGUAGE StandaloneDeriving #-}
-----------------------------------------------------------------------------
-- |
-- Module : Network.Bitcoin.BitX.Response
-- Copyright : 2015 Tebello Thejane
-- License : BSD3
--
-- Maintainer : Tebello Thejane <zyxoas+hackage@gmail.com>
-- Stability : Experimental
-- Portability : non-portable (GHC Extensions)
--
-- The common return type of the API.
--
-----------------------------------------------------------------------------
module Network.Bitcoin.BitX.Response
(
BitXAPIResponse(..)
) where
import Network.HTTP.Conduit (Response(..), HttpException)
import Data.ByteString.Lazy (ByteString)
import Network.Bitcoin.BitX.Types
-- | This retun type enumerates all possible failure modes.
data BitXAPIResponse recd =
ExceptionResponse HttpException -- ^ Some exception occured while making the call to BitX.
| ErrorResponse BitXError -- ^ BitX returned an error record instead of returning the data we
-- were expecting.
| ValidResponse recd -- ^ We received the data type we were expecting.
| UnparseableResponse (Response ByteString) -- ^ BitX retuned data which couldn't be parsed,
-- such as some text which was probably not JSON format.
deriving instance Show recd => Show (BitXAPIResponse recd)