mandrill 0.2.2.0 → 0.2.2.1
raw patch · 5 files changed
+56/−2 lines, 5 filesdep ~aesonPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: aeson
API changes (from Hackage documentation)
+ Network.API.Mandrill: newTemplateMessage :: EmailAddress -> [EmailAddress] -> Text -> MandrillMessage
+ Network.API.Mandrill.Messages: sendTemplate :: MandrillKey -> MandrillTemplate -> [MandrillTemplateContent] -> MandrillMessage -> Maybe Bool -> Maybe Text -> Maybe UTCTime -> Maybe Manager -> IO (MandrillResponse [MessagesResponse])
+ Network.API.Mandrill.Messages.Types: MessagesSendTemplateRq :: MandrillKey -> Text -> [MandrillTemplateContent] -> MandrillMessage -> Maybe Bool -> Maybe Text -> Maybe UTCTime -> MessagesSendTemplateRq
+ Network.API.Mandrill.Messages.Types: _mstrq_async :: MessagesSendTemplateRq -> Maybe Bool
+ Network.API.Mandrill.Messages.Types: _mstrq_ip_pool :: MessagesSendTemplateRq -> Maybe Text
+ Network.API.Mandrill.Messages.Types: _mstrq_key :: MessagesSendTemplateRq -> MandrillKey
+ Network.API.Mandrill.Messages.Types: _mstrq_message :: MessagesSendTemplateRq -> MandrillMessage
+ Network.API.Mandrill.Messages.Types: _mstrq_send_at :: MessagesSendTemplateRq -> Maybe UTCTime
+ Network.API.Mandrill.Messages.Types: _mstrq_template_content :: MessagesSendTemplateRq -> [MandrillTemplateContent]
+ Network.API.Mandrill.Messages.Types: _mstrq_template_name :: MessagesSendTemplateRq -> Text
+ Network.API.Mandrill.Messages.Types: data MessagesSendTemplateRq
+ Network.API.Mandrill.Messages.Types: instance FromJSON MessagesSendTemplateRq
+ Network.API.Mandrill.Messages.Types: instance Show MessagesSendTemplateRq
+ Network.API.Mandrill.Messages.Types: instance ToJSON MessagesSendTemplateRq
+ Network.API.Mandrill.Messages.Types: mstrq_async :: Lens' MessagesSendTemplateRq (Maybe Bool)
+ Network.API.Mandrill.Messages.Types: mstrq_ip_pool :: Lens' MessagesSendTemplateRq (Maybe Text)
+ Network.API.Mandrill.Messages.Types: mstrq_key :: Lens' MessagesSendTemplateRq MandrillKey
+ Network.API.Mandrill.Messages.Types: mstrq_message :: Lens' MessagesSendTemplateRq MandrillMessage
+ Network.API.Mandrill.Messages.Types: mstrq_send_at :: Lens' MessagesSendTemplateRq (Maybe UTCTime)
+ Network.API.Mandrill.Messages.Types: mstrq_template_content :: Lens' MessagesSendTemplateRq [MandrillTemplateContent]
+ Network.API.Mandrill.Messages.Types: mstrq_template_name :: Lens' MessagesSendTemplateRq Text
+ Network.API.Mandrill.Types: MandrillTemplateContent :: Text -> Text -> MandrillTemplateContent
+ Network.API.Mandrill.Types: _mtc_content :: MandrillTemplateContent -> Text
+ Network.API.Mandrill.Types: _mtc_name :: MandrillTemplateContent -> Text
+ Network.API.Mandrill.Types: data MandrillTemplateContent
+ Network.API.Mandrill.Types: instance FromJSON MandrillTemplateContent
+ Network.API.Mandrill.Types: instance Show MandrillTemplateContent
+ Network.API.Mandrill.Types: instance ToJSON MandrillTemplateContent
+ Network.API.Mandrill.Types: mtc_content :: Lens' MandrillTemplateContent Text
+ Network.API.Mandrill.Types: mtc_name :: Lens' MandrillTemplateContent Text
+ Network.API.Mandrill.Types: type MandrillTemplate = Text
Files
- mandrill.cabal +2/−2
- src/Network/API/Mandrill.hs +11/−0
- src/Network/API/Mandrill/Messages.hs +19/−0
- src/Network/API/Mandrill/Messages/Types.hs +13/−0
- src/Network/API/Mandrill/Types.hs +11/−0
mandrill.cabal view
@@ -1,5 +1,5 @@ name: mandrill-version: 0.2.2.0+version: 0.2.2.1 synopsis: Library for interfacing with the Mandrill JSON API description: Pure Haskell client for the Mandrill JSON API license: MIT@@ -39,7 +39,7 @@ , http-types >= 0.8.0 , http-client >= 0.3.0 , http-client-tls >= 0.2.0.0- , aeson >= 0.7.0.3 && < 0.9+ , aeson >= 0.7.0.3 && < 0.10.0.0 , lens >= 4.0 , blaze-html >= 0.5.0.0 , QuickCheck >= 2.6 && < 2.9
src/Network/API/Mandrill.hs view
@@ -12,6 +12,7 @@ , emptyMessage , newTextMessage , newHtmlMessage+ , newTemplateMessage , liftIO -- * Appendix: Example Usage@@ -106,6 +107,16 @@ newHtmlMessage f t subj html = let body = mkMandrillHtml html in ((mmsg_html .~ body) . (mmsg_subject .~ subj)) $ (emptyMessage f t) +--------------------------------------------------------------------------------+-- | Create a new template message (no HTML).+newTemplateMessage :: EmailAddress+ -- ^ Sender email+ -> [EmailAddress]+ -- ^ Receivers email+ -> T.Text+ -- ^ Subject+ -> MandrillMessage+newTemplateMessage f t subj = (mmsg_subject .~ subj) $ (emptyMessage f t) -------------------------------------------------------------------------------- -- | Create a new textual message. By default Mandrill doesn't require you
src/Network/API/Mandrill/Messages.hs view
@@ -24,3 +24,22 @@ -> Maybe Manager -> IO (MandrillResponse [MessagesResponse]) send k msg async ip_pool send_at = toMandrillResponse MessagesSend (MessagesSendRq k msg async ip_pool send_at)++-- | Send a new transactional message through Mandrill using a template+sendTemplate :: MandrillKey+ -- ^ The API key+ -> MandrillTemplate+ -- ^ The template name+ -> [MandrillTemplateContent]+ -- ^ Template content for 'editable regions'+ -> MandrillMessage+ -- ^ The email message+ -> Maybe Bool+ -- ^ Enable a background sending mode that is optimized for bulk sending+ -> Maybe T.Text+ -- ^ ip_pool+ -> Maybe UTCTime+ -- ^ send_at+ -> Maybe Manager+ -> IO (MandrillResponse [MessagesResponse])+sendTemplate k template content msg async ip_pool send_at = toMandrillResponse MessagesSendTemplate (MessagesSendTemplateRq k template content msg async ip_pool send_at)
src/Network/API/Mandrill/Messages/Types.hs view
@@ -27,6 +27,19 @@ makeLenses ''MessagesSendRq deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MessagesSendRq +--------------------------------------------------------------------------------+data MessagesSendTemplateRq = MessagesSendTemplateRq {+ _mstrq_key :: MandrillKey+ , _mstrq_template_name :: T.Text+ , _mstrq_template_content :: [MandrillTemplateContent]+ , _mstrq_message :: MandrillMessage+ , _mstrq_async :: Maybe Bool+ , _mstrq_ip_pool :: Maybe T.Text+ , _mstrq_send_at :: Maybe UTCTime+ } deriving Show++makeLenses ''MessagesSendTemplateRq+deriveJSON defaultOptions { fieldLabelModifier = drop 7 } ''MessagesSendTemplateRq -------------------------------------------------------------------------------- data MessagesResponse = MessagesResponse {
src/Network/API/Mandrill/Types.hs view
@@ -331,7 +331,18 @@ <*> pure [] --------------------------------------------------------------------------------+-- | Key value pair for replacing content in templates via 'Editable Regions'+data MandrillTemplateContent = MandrillTemplateContent {+ _mtc_name :: T.Text+ , _mtc_content :: T.Text+ } deriving Show++makeLenses ''MandrillTemplateContent+deriveJSON defaultOptions { fieldLabelModifier = drop 5 } ''MandrillTemplateContent++-------------------------------------------------------------------------------- type MandrillKey = T.Text+type MandrillTemplate = T.Text newtype MandrillDate = MandrillDate { fromMandrillDate :: UTCTime