This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/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{..}