mandrill-0.1.0.0: src/Network/API/Mandrill/Orphans.hs
module Network.API.Mandrill.Orphans where
import Data.Aeson
import Data.Aeson.Types
import Text.Email.Validate
import qualified Data.Text.Encoding as TE
instance ToJSON EmailAddress where
toJSON = String . TE.decodeUtf8 . toByteString
instance FromJSON EmailAddress where
parseJSON (String s) = case validate (TE.encodeUtf8 s) of
Left err -> fail err
Right v -> return v
parseJSON o = typeMismatch "Expecting a String for EmailAddress." o