@@ -1,6 +1,6 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DeriveFunctor #-}
3{-# LANGUAGE DeriveFoldable #-}
2{-# LANGUAGE DeriveFoldable #-}
3+{-# LANGUAGE DeriveFunctor #-}
4{-# LANGUAGE DeriveTraversable #-}
4{-# LANGUAGE DeriveTraversable #-}
5{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE RankNTypes #-}
6{-# LANGUAGE RankNTypes #-}
@@ -9,9 +9,11 @@
9module Network.API.Mandrill.Types where
9module Network.API.Mandrill.Types where
11import Control.Applicative
11import Control.Applicative
12+import Control.Monad (mzero)
12import Data.Char
13import Data.Char
13import Data.Maybe
14import Data.Maybe
14import Data.Time
15import Data.Time
16+import Lens.Micro.TH (makeLenses)
15import Network.API.Mandrill.Utils
17import Network.API.Mandrill.Utils
16import Test.QuickCheck
18import Test.QuickCheck
17import Text.Email.Validate
19import Text.Email.Validate
@@ -20,12 +22,15 @@ import Data.Time.Format (TimeLocale, defaultTimeLocale)
21import System.Locale (TimeLocale, defaultTimeLocale)
23import System.Locale (TimeLocale, defaultTimeLocale)
24import Data.Aeson
25import Data.Aeson
25import Data.Aeson.TH
26import Data.Aeson.TH
26import Data.Aeson.Types
27import Data.Aeson.Types
27import qualified Data.ByteString as B
28import qualified Data.ByteString as B
28import qualified Data.ByteString.Base64 as Base64
29import qualified Data.ByteString.Base64 as Base64
30+#if !MIN_VERSION_base(4,8,0)
32+import Data.Traversable
29import qualified Data.HashMap.Strict as H
34import qualified Data.HashMap.Strict as H
30import Data.Monoid
35import Data.Monoid
31import qualified Data.Text as T
36import qualified Data.Text as T
@@ -33,7 +38,7 @@ import qualified Data.Text.Encoding as TL
33import qualified Data.Text.Lazy as TL
38import qualified Data.Text.Lazy as TL
34import qualified Text.Blaze.Html as Blaze
39import qualified Text.Blaze.Html as Blaze
35import qualified Text.Blaze.Html.Renderer.Text as Blaze
40import qualified Text.Blaze.Html.Renderer.Text as Blaze
36−
41+import qualified Text.Email.Validate as TEV
38timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
43timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
39#if MIN_VERSION_time(1,5,0)
44#if MIN_VERSION_time(1,5,0)
@@ -153,6 +158,11 @@ unsafeMkMandrillHtml = MandrillHtml . Blaze.preEscapedToHtml
153mkMandrillHtml :: Blaze.Html -> MandrillHtml
158mkMandrillHtml :: Blaze.Html -> MandrillHtml
154mkMandrillHtml = MandrillHtml
159mkMandrillHtml = MandrillHtml
161+#if MIN_VERSION_base(4,11,0)
162+instance Semigroup MandrillHtml where
163+ MandrillHtml m1 <> MandrillHtml m2 = MandrillHtml (m1 <> m2)
156instance Monoid MandrillHtml where
166instance Monoid MandrillHtml where
157 mempty = MandrillHtml mempty
167 mempty = MandrillHtml mempty
158 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)
168 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)