module Pinboard.Client.Error
( defaultPinboardError
, PinboardErrorHTTPCode (..)
, PinboardErrorType (..)
, PinboardErrorCode (..)
, PinboardError (..)
) where
import Data.Text (Text)
import Data.Monoid
import Prelude
data PinboardErrorHTTPCode =
BadRequest
| UnAuthorized
| RequestFailed
| Forbidden
| NotFound
| TooManyRequests
| PinboardServerError
| UnknownHTTPCode
deriving Show
data PinboardErrorType =
ConnectionFailure
| HttpStatusFailure
| ParseFailure
| UnknownErrorType
deriving Show
data PinboardErrorCode =
UnknownError
deriving Show
data PinboardError = PinboardError {
errorType :: PinboardErrorType
, errorMsg :: Text
, errorCode :: Maybe PinboardErrorCode
, errorParam :: Maybe Text
, errorHTTP :: Maybe PinboardErrorHTTPCode
} deriving Show
defaultPinboardError :: PinboardError
defaultPinboardError = PinboardError UnknownErrorType mempty Nothing Nothing Nothing