module Reddit.Types.Empty ( nothing ) where
import Control.Monad (liftM)
import Data.Aeson
import Data.Aeson.Types
import Data.Monoid
import Prelude
import qualified Data.HashMap.Strict as Hash
nothing :: Monad m => m Empty -> m ()
nothing = liftM $ const ()
data Empty = Empty
deriving (Show, Read, Eq)
instance FromJSON Empty where
parseJSON (Object o) =
if Hash.null o
then return Empty
else do
errs <- (o .: "json") >>= (.: "errors") :: Parser [Value]
if null errs
then return Empty
else mempty
parseJSON _ = mempty