git.iko.soy/typeable/mandrill
on master help sign in
Merge pull request #15 from adinapoli/issue-14
5a034e4Alfredo Di Napoli
@@ -1 +1 @@
1−mandrill
1+mandrill-7.10.1
.travis.yml+2−1
@@ -9,6 +9,7 @@ env:
9 - GHCVER=7.6.3 CABALVER=1.16
9 - GHCVER=7.6.3 CABALVER=1.16
10 - GHCVER=7.8.2 CABALVER=1.18
10 - GHCVER=7.8.2 CABALVER=1.18
11 - GHCVER=7.8.3 CABALVER=1.18
11 - GHCVER=7.8.3 CABALVER=1.18
12+ - GHCVER=7.10.1 CABALVER=1.22
12 - GHCVER=head CABALVER=1.20
13 - GHCVER=head CABALVER=1.20
13
14
14matrix:
15matrix:
@@ -46,4 +47,4 @@ script:
46after_script:
47after_script:
47 - cabal install hpc-coveralls
48 - cabal install hpc-coveralls
48 - export PATH=/opt/ghc/$GHCVER/bin:$HOME/.cabal/bin:$PATH
49 - export PATH=/opt/ghc/$GHCVER/bin:$HOME/.cabal/bin:$PATH
49− - hpc-coveralls --coverage-mode=StrictlyFullLines mandrill-tests
50+ - hpc-coveralls --coverage-mode=StrictlyFullLines mandrill-tests
mandrill.cabal+1−1
@@ -1,5 +1,5 @@
1name: mandrill
1name: mandrill
2−version: 0.2.1.0
2+version: 0.2.2.0
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
src/Network/API/Mandrill/Types.hs+15−2
@@ -1,4 +1,5 @@
1{-# LANGUAGE TemplateHaskell #-}
1{-# LANGUAGE TemplateHaskell #-}
2+{-# LANGUAGE CPP #-}
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)
19+#else
15−import System.Locale (defaultTimeLocale)
20+import System.Locale (TimeLocale, defaultTimeLocale)
21+#endif
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
28
34
29
35
36+timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
37+#if MIN_VERSION_time(1,5,0)
38+timeParse = parseTimeM True
39+#else
40+timeParse = parseTime
41+#endif
42+
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
329
342
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"