module Sound.Freesound.Comment (
Comment(..)
) where
import Data.Aeson (FromJSON(..), Value(..), (.:))
import Data.Aeson.Types (typeMismatch)
import Data.Text (Text)
import Sound.Freesound.Time
#if __GLASGOW_HASKELL__ < 710
import Control.Applicative
#endif
data Comment = Comment {
username :: Text
, comment :: Text
, created :: UTCTime
} deriving (Eq, Show)
instance FromJSON Comment where
parseJSON (Object v) =
Comment <$> v .: "username"
<*> v .: "comment"
<*> (toUTCTime <$> (v .: "created"))
parseJSON v = typeMismatch "Comment" v