@@ -1,7 +1,4 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DeriveFoldable #-}
3−{-# LANGUAGE DeriveFunctor #-}
4−{-# LANGUAGE DeriveTraversable #-}
5{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE RankNTypes #-}
3{-# LANGUAGE RankNTypes #-}
7{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE ScopedTypeVariables #-}
@@ -9,11 +6,9 @@
9module Network.API.Mandrill.Types where
6module Network.API.Mandrill.Types where
11import Control.Applicative
8import Control.Applicative
12−import Control.Monad (mzero)
13import Data.Char
9import Data.Char
14import Data.Maybe
10import Data.Maybe
15import Data.Time
11import Data.Time
16−import Lens.Micro.TH (makeLenses)
17import Network.API.Mandrill.Utils
12import Network.API.Mandrill.Utils
18import Test.QuickCheck
13import Test.QuickCheck
19import Text.Email.Validate
14import Text.Email.Validate
@@ -22,15 +17,12 @@ import Data.Time.Format (TimeLocale, defaultTimeLocale)
23import System.Locale (TimeLocale, defaultTimeLocale)
18import System.Locale (TimeLocale, defaultTimeLocale)
25import Data.Aeson
21import Data.Aeson
26import Data.Aeson.TH
22import Data.Aeson.TH
27import Data.Aeson.Types
23import Data.Aeson.Types
28import qualified Data.ByteString as B
24import qualified Data.ByteString as B
29import qualified Data.ByteString.Base64 as Base64
25import qualified Data.ByteString.Base64 as Base64
30−#if !MIN_VERSION_base(4,8,0)
32−import Data.Traversable
34import qualified Data.HashMap.Strict as H
26import qualified Data.HashMap.Strict as H
35import Data.Monoid
27import Data.Monoid
36import qualified Data.Text as T
28import qualified Data.Text as T
@@ -38,7 +30,7 @@ import qualified Data.Text.Encoding as TL
38import qualified Data.Text.Lazy as TL
30import qualified Data.Text.Lazy as TL
39import qualified Text.Blaze.Html as Blaze
31import qualified Text.Blaze.Html as Blaze
40import qualified Text.Blaze.Html.Renderer.Text as Blaze
32import qualified Text.Blaze.Html.Renderer.Text as Blaze
41−import qualified Text.Email.Validate as TEV
33+
43timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
35timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
44#if MIN_VERSION_time(1,5,0)
36#if MIN_VERSION_time(1,5,0)
@@ -53,7 +45,7 @@ data MandrillError = MandrillError {
53 , _merr_code :: !Int
45 , _merr_code :: !Int
54 , _merr_name :: !T.Text
46 , _merr_name :: !T.Text
55 , _merr_message :: !T.Text
47 , _merr_message :: !T.Text
56− } deriving (Show, Eq)
48+ } deriving Show
58makeLenses ''MandrillError
50makeLenses ''MandrillError
59deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MandrillError
51deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MandrillError
@@ -91,7 +83,7 @@ deriveJSON defaultOptions {
91-- which can be either a success or a failure.
83-- which can be either a success or a failure.
92data MandrillResponse k =
84data MandrillResponse k =
93 MandrillSuccess k
85 MandrillSuccess k
94− | MandrillFailure MandrillError deriving (Show, Eq, Functor, Foldable, Traversable)
86+ | MandrillFailure MandrillError deriving Show
96instance FromJSON k => FromJSON (MandrillResponse k) where
88instance FromJSON k => FromJSON (MandrillResponse k) where
97 parseJSON v = case (parseMaybe parseJSON v) :: Maybe k of
89 parseJSON v = case (parseMaybe parseJSON v) :: Maybe k of
@@ -158,11 +150,6 @@ unsafeMkMandrillHtml = MandrillHtml . Blaze.preEscapedToHtml
158mkMandrillHtml :: Blaze.Html -> MandrillHtml
150mkMandrillHtml :: Blaze.Html -> MandrillHtml
159mkMandrillHtml = MandrillHtml
151mkMandrillHtml = MandrillHtml
161−#if MIN_VERSION_base(4,11,0)
162−instance Semigroup MandrillHtml where
163− MandrillHtml m1 <> MandrillHtml m2 = MandrillHtml (m1 <> m2)
166instance Monoid MandrillHtml where
153instance Monoid MandrillHtml where
167 mempty = MandrillHtml mempty
154 mempty = MandrillHtml mempty
168 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)
155 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)