git.iko.soy/typeable/mandrill
on aefccdc help sign in
13 files changed+22−50
since splitsnapshots
unifiedsplit
.gitignore−1 .travis.yml+4−4 README.md−20 mandrill-nightly.yml+2−3 mandrill.cabal+3−3 src/Network/API/Mandrill.hs+6−7 src/Network/API/Mandrill/Inbound.hs+1−1 src/Network/API/Mandrill/Messages/Types.hs+1−1 src/Network/API/Mandrill/Senders.hs+1−1 src/Network/API/Mandrill/Types.hs+1−6 src/Network/API/Mandrill/Users/Types.hs+1−1 src/Network/API/Mandrill/Webhooks.hs+1−1 stack.yaml+1−1
.gitignore−1
@@ -3,4 +3,3 @@ dist
33cabal.sandbox.config
44shell.nix
55.stack-work
6−tags
.travis.yml+4−4
@@ -5,17 +5,17 @@ notifications:
55 email: false
66
77env:
8+ - GHCVER=7.6.2 CABALVER=1.16
89 - GHCVER=7.6.3 CABALVER=1.16
910 - GHCVER=7.8.2 CABALVER=1.18
1011 - GHCVER=7.8.3 CABALVER=1.18
12+ - GHCVER=7.10.1 CABALVER=1.22
1113 - GHCVER=7.10.2 CABALVER=1.22
12− - GHCVER=8.0.1 CABALVER=1.22
13− - GHCVER=head CABALVER=1.22
14+ - GHCVER=head CABALVER=1.20
1415
1516matrix:
1617 allow_failures:
17− - env: GHCVER=8.0.1 CABALVER=1.22
18− - env: GHCVER=head CABALVER=1.22
18+ - env: GHCVER=head CABALVER=1.20
1919
2020before_install:
2121 - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
README.md−20
@@ -8,26 +8,6 @@ the [Mandrill](http://mandrillapp.com) transactional email service.
88
99# Changelog
1010
11−## Version 0.5.3.5
12−
13−* Replaced dependency on lens with microlens (Courtesy of @tom-bop)
14−
15−## Version 0.5.3.3
16−
17−* Relaxed upper bound on Aeson (see: fpco/stackage/issues/3337)
18−
19−## Version 0.5.3.2
20−
21−* Relaxed upper bound on Aeson (see: fpco/stackage/issues/2449)
22−
23−## Version 0.5.3.1
24−
25−* Relaxed upper bound on Aeson (see: fpco/stackage/issues/2177 )
26−
27−## Version 0.5.3.0
28−
29−* Added support for webhooks (thanks to @mwotton).
30−
3111## Version 0.5.2.3
3212
3313* Added support for aeson-1.0.0.0 by relaxing its upper bound.
mandrill-nightly.yml+2−3
@@ -4,7 +4,6 @@ flags:
44packages:
55- '.'
66extra-deps:
7− - aeson-1.3.0.0
8− - text-1.2.3.0
7+ - aeson-1.0.0.0
98 - semigroups-0.18.2
10−resolver: lts-9.1
9+resolver: lts-6.9
mandrill.cabal+3−3
@@ -1,5 +1,5 @@
11name: mandrill
2−version: 0.5.3.5
2+version: 0.5.2.3
33synopsis: Library for interfacing with the Mandrill JSON API
44description: Pure Haskell client for the Mandrill JSON API
55license: MIT
@@ -41,8 +41,8 @@ library
4141 , http-types >= 0.8.0
4242 , http-client >= 0.3.0
4343 , http-client-tls >= 0.2.0.0
44− , aeson >= 0.7.0.3 && < 1.5.0.0
45− , microlens-th >= 0.4.0.0
44+ , aeson >= 0.7.0.3 && < 1.1.0.0
45+ , lens >= 4.0
4646 , blaze-html >= 0.5.0.0
4747 , QuickCheck >= 2.6 && < 3.0
4848 , mtl < 3.0
src/Network/API/Mandrill.hs+6−7
@@ -20,6 +20,7 @@ module Network.API.Mandrill (
2020 -- $exampleusage
2121 ) where
2222
23+import Control.Lens
2324import Control.Monad.Reader
2425import qualified Data.Aeson as JSON
2526import qualified Data.HashMap.Strict as H
@@ -106,7 +107,7 @@ newHtmlMessage :: EmailAddress
106107 -- ^ The HTML body
107108 -> MandrillMessage
108109newHtmlMessage f t subj html = let body = mkMandrillHtml html in
109− (emptyMessage f t) { _mmsg_html = body, _mmsg_subject = subj }
110+ ((mmsg_html .~ body) . (mmsg_subject .~ subj)) $ (emptyMessage f t)
110111
111112--------------------------------------------------------------------------------
112113-- | Create a new template message (no HTML).
@@ -117,7 +118,7 @@ newTemplateMessage :: EmailAddress
117118 -> T.Text
118119 -- ^ Subject
119120 -> MandrillMessage
120−newTemplateMessage f t subj = (emptyMessage f t) { _mmsg_subject = subj }
121+newTemplateMessage f t subj = (mmsg_subject .~ subj) $ (emptyMessage f t)
121122
122123--------------------------------------------------------------------------------
123124-- | Create a new textual message. By default Mandrill doesn't require you
@@ -133,11 +134,9 @@ newTextMessage :: EmailAddress
133134 -- ^ The body, as normal text.
134135 -> MandrillMessage
135136newTextMessage f t subj txt = let body = unsafeMkMandrillHtml txt in
136− (emptyMessage f t) {
137− _mmsg_html = body
138− , _mmsg_text = Just txt
139− , _mmsg_subject = subj
140− }
137+ ((mmsg_html .~ body) .
138+ (mmsg_text .~ Just txt) .
139+ (mmsg_subject .~ subj)) (emptyMessage f t)
141140
142141
143142--------------------------------------------------------------------------------
src/Network/API/Mandrill/Inbound.hs+1−1
@@ -1,11 +1,11 @@
11{-# LANGUAGE TemplateHaskell #-}
22module Network.API.Mandrill.Inbound where
3+import Control.Lens
34import Data.Aeson (FromJSON, ToJSON, parseJSON,
45 toJSON)
56import Data.Aeson.TH (defaultOptions, deriveJSON)
67import Data.Aeson.Types (fieldLabelModifier)
78import Data.Text (Text)
8−import Lens.Micro.TH (makeLenses)
99import Network.API.Mandrill.HTTP (toMandrillResponse)
1010import Network.API.Mandrill.Settings
1111import Network.API.Mandrill.Types
src/Network/API/Mandrill/Messages/Types.hs+1−1
@@ -5,12 +5,12 @@ module Network.API.Mandrill.Messages.Types where
55import Data.Char
66import Data.Time
77import qualified Data.Text as T
8+import Control.Lens
89import Control.Monad
910import Data.Monoid
1011import Data.Aeson
1112import Data.Aeson.Types
1213import Data.Aeson.TH
13−import Lens.Micro.TH (makeLenses)
1414
1515import Network.API.Mandrill.Types
1616
src/Network/API/Mandrill/Senders.hs+1−1
@@ -1,12 +1,12 @@
11{-# LANGUAGE TemplateHaskell #-}
22module Network.API.Mandrill.Senders where
3+import Control.Lens
34import Data.Aeson (FromJSON, ToJSON, parseJSON,
45 toJSON)
56import Data.Aeson.TH (defaultOptions, deriveJSON)
67import Data.Aeson.Types (Value (..), fieldLabelModifier)
78import Data.Text (Text)
89import Data.Text.Encoding (decodeUtf8, encodeUtf8)
9−import Lens.Micro.TH (makeLenses)
1010import Network.API.Mandrill.HTTP (toMandrillResponse)
1111import Network.API.Mandrill.Settings
1212import Network.API.Mandrill.Types
src/Network/API/Mandrill/Types.hs+1−6
@@ -13,7 +13,6 @@ import Control.Monad (mzero)
1313import Data.Char
1414import Data.Maybe
1515import Data.Time
16−import Lens.Micro.TH (makeLenses)
1716import Network.API.Mandrill.Utils
1817import Test.QuickCheck
1918import Text.Email.Validate
@@ -22,6 +21,7 @@ import Data.Time.Format (TimeLocale, defaultTimeLocale)
2221#else
2322import System.Locale (TimeLocale, defaultTimeLocale)
2423#endif
24+import Control.Lens
2525import Data.Aeson
2626import Data.Aeson.TH
2727import Data.Aeson.Types
@@ -158,11 +158,6 @@ unsafeMkMandrillHtml = MandrillHtml . Blaze.preEscapedToHtml
158158mkMandrillHtml :: Blaze.Html -> MandrillHtml
159159mkMandrillHtml = MandrillHtml
160160
161−#if MIN_VERSION_base(4,11,0)
162−instance Semigroup MandrillHtml where
163− MandrillHtml m1 <> MandrillHtml m2 = MandrillHtml (m1 <> m2)
164−#endif
165−
166161instance Monoid MandrillHtml where
167162 mempty = MandrillHtml mempty
168163 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)
src/Network/API/Mandrill/Users/Types.hs+1−1
@@ -5,12 +5,12 @@ module Network.API.Mandrill.Users.Types where
55import Data.Char
66import Data.Time
77import qualified Data.Text as T
8+import Control.Lens
89import Control.Monad
910import Data.Monoid
1011import Data.Aeson
1112import Data.Aeson.Types
1213import Data.Aeson.TH
13−import Lens.Micro.TH (makeLenses)
1414
1515import Network.API.Mandrill.Types
1616
src/Network/API/Mandrill/Webhooks.hs+1−1
@@ -2,6 +2,7 @@
22{-# LANGUAGE TemplateHaskell #-}
33module Network.API.Mandrill.Webhooks where
44import Control.Applicative (pure)
5+import Control.Lens
56import Control.Monad (mzero)
67import Data.Aeson (FromJSON, ToJSON, parseJSON,
78 toJSON)
@@ -11,7 +12,6 @@ import Data.Aeson.Types (fieldLabelModifier)
1112import Data.Set (Set)
1213import Data.Text (Text)
1314import qualified Data.Text as T
14−import Lens.Micro.TH (makeLenses)
1515import Network.API.Mandrill.HTTP (toMandrillResponse)
1616import Network.API.Mandrill.Settings
1717import Network.API.Mandrill.Types
stack.yaml+1−1
@@ -2,4 +2,4 @@ flags: {}
22packages:
33- '.'
44extra-deps: []
5−resolver: lts-11.13
5+resolver: lts-5.2