git.iko.soy/typeable/mandrill
on master help sign in
.gitignore+1
since splitsnapshots
unifiedsplit
@@ -3,3 +3,4 @@ dist
3cabal.sandbox.config
3cabal.sandbox.config
4shell.nix
4shell.nix
5.stack-work
5.stack-work
6+tags
.travis.yml+2−1
@@ -14,7 +14,8 @@ env:
14
14
15matrix:
15matrix:
16 allow_failures:
16 allow_failures:
17− - env: GHCVER=8.0.1 GHCVER=head
17+ - env: GHCVER=8.0.1 CABALVER=1.22
18+ - env: GHCVER=head CABALVER=1.22
18
19
19before_install:
20before_install:
20 - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
21 - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
README.md+16
@@ -8,6 +8,22 @@ the [Mandrill](http://mandrillapp.com) transactional email service.
8
8
9# Changelog
9# Changelog
10
10
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+
11## Version 0.5.3.0
27## Version 0.5.3.0
12
28
13* Added support for webhooks (thanks to @mwotton).
29* Added support for webhooks (thanks to @mwotton).
mandrill-nightly.yml+3−2
@@ -4,6 +4,7 @@ flags:
4packages:
4packages:
5- '.'
5- '.'
6extra-deps:
6extra-deps:
7− - aeson-1.0.0.0
7+ - aeson-1.3.0.0
8+ - text-1.2.3.0
8 - semigroups-0.18.2
9 - semigroups-0.18.2
9−resolver: lts-6.9
10+resolver: lts-9.1
mandrill.cabal+3−3
@@ -1,5 +1,5 @@
1name: mandrill
1name: mandrill
2−version: 0.5.3.0
2+version: 0.5.3.5
3synopsis: Library for interfacing with the Mandrill JSON API
3synopsis: Library for interfacing with the Mandrill JSON API
4description: Pure Haskell client for the Mandrill JSON API
4description: Pure Haskell client for the Mandrill JSON API
5license: MIT
5license: MIT
@@ -41,8 +41,8 @@ library
41 , http-types >= 0.8.0
41 , http-types >= 0.8.0
42 , http-client >= 0.3.0
42 , http-client >= 0.3.0
43 , http-client-tls >= 0.2.0.0
43 , http-client-tls >= 0.2.0.0
44− , aeson >= 0.7.0.3 && < 1.1.0.0
44+ , aeson >= 0.7.0.3 && < 1.5.0.0
45− , lens >= 4.0
45+ , microlens-th >= 0.4.0.0
46 , blaze-html >= 0.5.0.0
46 , blaze-html >= 0.5.0.0
47 , QuickCheck >= 2.6 && < 3.0
47 , QuickCheck >= 2.6 && < 3.0
48 , mtl < 3.0
48 , mtl < 3.0
src/Network/API/Mandrill.hs+7−6
@@ -20,7 +20,6 @@ module Network.API.Mandrill (
20 -- $exampleusage
20 -- $exampleusage
21 ) where
21 ) where
22
22
23−import Control.Lens
24import Control.Monad.Reader
23import Control.Monad.Reader
25import qualified Data.Aeson as JSON
24import qualified Data.Aeson as JSON
26import qualified Data.HashMap.Strict as H
25import qualified Data.HashMap.Strict as H
@@ -107,7 +106,7 @@ newHtmlMessage :: EmailAddress
107 -- ^ The HTML body
106 -- ^ The HTML body
108 -> MandrillMessage
107 -> MandrillMessage
109newHtmlMessage f t subj html = let body = mkMandrillHtml html in
108newHtmlMessage f t subj html = let body = mkMandrillHtml html in
110− ((mmsg_html .~ body) . (mmsg_subject .~ subj)) $ (emptyMessage f t)
109+ (emptyMessage f t) { _mmsg_html = body, _mmsg_subject = subj }
111
110
112--------------------------------------------------------------------------------
111--------------------------------------------------------------------------------
113-- | Create a new template message (no HTML).
112-- | Create a new template message (no HTML).
@@ -118,7 +117,7 @@ newTemplateMessage :: EmailAddress
118 -> T.Text
117 -> T.Text
119 -- ^ Subject
118 -- ^ Subject
120 -> MandrillMessage
119 -> MandrillMessage
121−newTemplateMessage f t subj = (mmsg_subject .~ subj) $ (emptyMessage f t)
120+newTemplateMessage f t subj = (emptyMessage f t) { _mmsg_subject = subj }
122
121
123--------------------------------------------------------------------------------
122--------------------------------------------------------------------------------
124-- | Create a new textual message. By default Mandrill doesn't require you
123-- | Create a new textual message. By default Mandrill doesn't require you
@@ -134,9 +133,11 @@ newTextMessage :: EmailAddress
134 -- ^ The body, as normal text.
133 -- ^ The body, as normal text.
135 -> MandrillMessage
134 -> MandrillMessage
136newTextMessage f t subj txt = let body = unsafeMkMandrillHtml txt in
135newTextMessage f t subj txt = let body = unsafeMkMandrillHtml txt in
137− ((mmsg_html .~ body) .
136+ (emptyMessage f t) {
137+ _mmsg_html = body
138− (mmsg_text .~ Just txt) .
138+ , _mmsg_text = Just txt
139− (mmsg_subject .~ subj)) (emptyMessage f t)
139+ , _mmsg_subject = subj
140+ }
140
141
141
142
142--------------------------------------------------------------------------------
143--------------------------------------------------------------------------------
src/Network/API/Mandrill/Inbound.hs+1−1
@@ -1,11 +1,11 @@
1{-# LANGUAGE TemplateHaskell #-}
1{-# LANGUAGE TemplateHaskell #-}
2module Network.API.Mandrill.Inbound where
2module Network.API.Mandrill.Inbound where
3−import Control.Lens
4import Data.Aeson (FromJSON, ToJSON, parseJSON,
3import Data.Aeson (FromJSON, ToJSON, parseJSON,
5 toJSON)
4 toJSON)
6import Data.Aeson.TH (defaultOptions, deriveJSON)
5import Data.Aeson.TH (defaultOptions, deriveJSON)
7import Data.Aeson.Types (fieldLabelModifier)
6import Data.Aeson.Types (fieldLabelModifier)
8import Data.Text (Text)
7import Data.Text (Text)
8+import Lens.Micro.TH (makeLenses)
9import Network.API.Mandrill.HTTP (toMandrillResponse)
9import Network.API.Mandrill.HTTP (toMandrillResponse)
10import Network.API.Mandrill.Settings
10import Network.API.Mandrill.Settings
11import Network.API.Mandrill.Types
11import Network.API.Mandrill.Types
src/Network/API/Mandrill/Messages/Types.hs+1−1
@@ -5,12 +5,12 @@ module Network.API.Mandrill.Messages.Types where
5import Data.Char
5import Data.Char
6import Data.Time
6import Data.Time
7import qualified Data.Text as T
7import qualified Data.Text as T
8−import Control.Lens
9import Control.Monad
8import Control.Monad
10import Data.Monoid
9import Data.Monoid
11import Data.Aeson
10import Data.Aeson
12import Data.Aeson.Types
11import Data.Aeson.Types
13import Data.Aeson.TH
12import Data.Aeson.TH
13+import Lens.Micro.TH (makeLenses)
14
14
15import Network.API.Mandrill.Types
15import Network.API.Mandrill.Types
16
16
src/Network/API/Mandrill/Senders.hs+1−1
@@ -1,12 +1,12 @@
1{-# LANGUAGE TemplateHaskell #-}
1{-# LANGUAGE TemplateHaskell #-}
2module Network.API.Mandrill.Senders where
2module Network.API.Mandrill.Senders where
3−import Control.Lens
4import Data.Aeson (FromJSON, ToJSON, parseJSON,
3import Data.Aeson (FromJSON, ToJSON, parseJSON,
5 toJSON)
4 toJSON)
6import Data.Aeson.TH (defaultOptions, deriveJSON)
5import Data.Aeson.TH (defaultOptions, deriveJSON)
7import Data.Aeson.Types (Value (..), fieldLabelModifier)
6import Data.Aeson.Types (Value (..), fieldLabelModifier)
8import Data.Text (Text)
7import Data.Text (Text)
9import Data.Text.Encoding (decodeUtf8, encodeUtf8)
8import Data.Text.Encoding (decodeUtf8, encodeUtf8)
9+import Lens.Micro.TH (makeLenses)
10import Network.API.Mandrill.HTTP (toMandrillResponse)
10import Network.API.Mandrill.HTTP (toMandrillResponse)
11import Network.API.Mandrill.Settings
11import Network.API.Mandrill.Settings
12import Network.API.Mandrill.Types
12import Network.API.Mandrill.Types
src/Network/API/Mandrill/Types.hs+6−1
@@ -13,6 +13,7 @@ import Control.Monad (mzero)
13import Data.Char
13import Data.Char
14import Data.Maybe
14import Data.Maybe
15import Data.Time
15import Data.Time
16+import Lens.Micro.TH (makeLenses)
16import Network.API.Mandrill.Utils
17import Network.API.Mandrill.Utils
17import Test.QuickCheck
18import Test.QuickCheck
18import Text.Email.Validate
19import Text.Email.Validate
@@ -21,7 +22,6 @@ import Data.Time.Format (TimeLocale, defaultTimeLocale)
21#else
22#else
22import System.Locale (TimeLocale, defaultTimeLocale)
23import System.Locale (TimeLocale, defaultTimeLocale)
23#endif
24#endif
24−import Control.Lens
25import Data.Aeson
25import Data.Aeson
26import Data.Aeson.TH
26import Data.Aeson.TH
27import Data.Aeson.Types
27import Data.Aeson.Types
@@ -158,6 +158,11 @@ unsafeMkMandrillHtml = MandrillHtml . Blaze.preEscapedToHtml
158mkMandrillHtml :: Blaze.Html -> MandrillHtml
158mkMandrillHtml :: Blaze.Html -> MandrillHtml
159mkMandrillHtml = MandrillHtml
159mkMandrillHtml = MandrillHtml
160
160
161+#if MIN_VERSION_base(4,11,0)
162+instance Semigroup MandrillHtml where
163+ MandrillHtml m1 <> MandrillHtml m2 = MandrillHtml (m1 <> m2)
164+#endif
165+
161instance Monoid MandrillHtml where
166instance Monoid MandrillHtml where
162 mempty = MandrillHtml mempty
167 mempty = MandrillHtml mempty
163 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)
168 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
5import Data.Char
5import Data.Char
6import Data.Time
6import Data.Time
7import qualified Data.Text as T
7import qualified Data.Text as T
8−import Control.Lens
9import Control.Monad
8import Control.Monad
10import Data.Monoid
9import Data.Monoid
11import Data.Aeson
10import Data.Aeson
12import Data.Aeson.Types
11import Data.Aeson.Types
13import Data.Aeson.TH
12import Data.Aeson.TH
13+import Lens.Micro.TH (makeLenses)
14
14
15import Network.API.Mandrill.Types
15import Network.API.Mandrill.Types
16
16
src/Network/API/Mandrill/Webhooks.hs+1−1
@@ -2,7 +2,6 @@
2{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE TemplateHaskell #-}
3module Network.API.Mandrill.Webhooks where
3module Network.API.Mandrill.Webhooks where
4import Control.Applicative (pure)
4import Control.Applicative (pure)
5−import Control.Lens
6import Control.Monad (mzero)
5import Control.Monad (mzero)
7import Data.Aeson (FromJSON, ToJSON, parseJSON,
6import Data.Aeson (FromJSON, ToJSON, parseJSON,
8 toJSON)
7 toJSON)
@@ -12,6 +11,7 @@ import Data.Aeson.Types (fieldLabelModifier)
12import Data.Set (Set)
11import Data.Set (Set)
13import Data.Text (Text)
12import Data.Text (Text)
14import qualified Data.Text as T
13import qualified Data.Text as T
14+import Lens.Micro.TH (makeLenses)
15import Network.API.Mandrill.HTTP (toMandrillResponse)
15import Network.API.Mandrill.HTTP (toMandrillResponse)
16import Network.API.Mandrill.Settings
16import Network.API.Mandrill.Settings
17import Network.API.Mandrill.Types
17import Network.API.Mandrill.Types
stack.yaml+1−1
@@ -2,4 +2,4 @@ flags: {}
2packages:
2packages:
3- '.'
3- '.'
4extra-deps: []
4extra-deps: []
5−resolver: lts-5.2
5+resolver: lts-11.13