fradrive/src/Network/Mail/Mime/Instances.hs
2018-12-14 21:39:43 +01:00

34 lines
701 B
Haskell

{-# OPTIONS_GHC -fno-warn-orphans #-}
module Network.Mail.Mime.Instances
(
) where
import ClassyPrelude
import Network.Mail.Mime
import Data.Hashable (Hashable)
import Data.Aeson
import Data.Aeson.TH
import Utils.PathPiece
import Utils (assertM)
deriving instance Read Address
deriving instance Ord Address
deriving instance Generic Address
instance Hashable Address
deriveToJSON defaultOptions
{ fieldLabelModifier = intercalate "-" . map toLower . drop 1 . splitCamel
} ''Address
instance FromJSON Address where
parseJSON = withObject "Address" $ \obj -> do
addressName <- assertM (not . null) <$> (obj .:? "name")
addressEmail <- obj .: "email"
return Address{..}