@@ -1,4 +1,5 @@
1{-# LANGUAGE TemplateHaskell #-}
1{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE RankNTypes #-}
3{-# LANGUAGE RankNTypes #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
@@ -12,7 +13,12 @@ import Data.Char
12import Data.Maybe
13import Data.Maybe
13import Data.Time
14import Data.Time
14import Control.Applicative
15import Control.Applicative
16+import Data.Time (ParseTime)
17+#if MIN_VERSION_time(1,5,0)
18+import Data.Time.Format (TimeLocale, defaultTimeLocale)
15−import System.Locale (defaultTimeLocale)
20+import System.Locale (TimeLocale, defaultTimeLocale)
16import qualified Data.ByteString as B
22import qualified Data.ByteString as B
17import qualified Data.ByteString.Base64 as Base64
23import qualified Data.ByteString.Base64 as Base64
18import qualified Data.Text as T
24import qualified Data.Text as T
@@ -27,6 +33,13 @@ import qualified Text.Blaze.Html as Blaze
27import qualified Text.Blaze.Html.Renderer.Text as Blaze
33import qualified Text.Blaze.Html.Renderer.Text as Blaze
36+timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
37+#if MIN_VERSION_time(1,5,0)
38+timeParse = parseTimeM True
30--------------------------------------------------------------------------------
43--------------------------------------------------------------------------------
31data MandrillError = MandrillError {
44data MandrillError = MandrillError {
32 _merr_status :: !T.Text
45 _merr_status :: !T.Text
@@ -329,6 +342,6 @@ instance ToJSON MandrillDate where
330instance FromJSON MandrillDate where
343instance FromJSON MandrillDate where
331 parseJSON = withText "MandrillDate" $ \t ->
344 parseJSON = withText "MandrillDate" $ \t ->
332− case parseTime defaultTimeLocale "%Y-%m-%d %I:%M:%S%Q" (T.unpack t) of
345+ case timeParse defaultTimeLocale "%Y-%m-%d %I:%M:%S%Q" (T.unpack t) of
333 Just d -> pure $ MandrillDate d
346 Just d -> pure $ MandrillDate d
334 _ -> fail "could not parse Mandrill date"
347 _ -> fail "could not parse Mandrill date"