module Network.API.TheMovieDB.Types.ReleaseDate (ReleaseDate(..)) where
import Data.Aeson
import Data.Aeson.Types (typeMismatch)
import Data.Text (unpack)
import Data.Time (parseTime, Day(..))
import System.Locale (defaultTimeLocale)
newtype ReleaseDate = ReleaseDate
{releaseDate :: Day} deriving (Eq, Show)
instance FromJSON ReleaseDate where
parseJSON (String t) =
case parseTime defaultTimeLocale "%Y-%m-%d" (unpack t) of
Just d -> return $ ReleaseDate d
_ -> fail "could not parse release_date"
parseJSON v = typeMismatch "ReleaseDate" v