packages feed

hailgun 0.5.0 → 0.5.1

raw patch · 8 files changed

+51/−9 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Changelog.md view
@@ -1,3 +1,7 @@+## 0.5.1++- Minor cleanups (see commit 1bb4746eaf3fbc100b9003da771eb4198a8a198a)+ ## 0.5.0  - [PR #26](https://bitbucket.org/echo_rm/hailgun/pull-requests/26/) Support named emails
Mail/Hailgun/Communication.hs view
@@ -13,7 +13,9 @@ import           Data.Aeson import qualified Data.ByteString.Char8                 as BC import qualified Data.ByteString.Lazy.Char8            as BLC+#if __GLASGOW_HASKELL__ < 806 import           Data.Foldable                         (foldMap)+#endif import           Data.Monoid import           Mail.Hailgun.Errors import           Mail.Hailgun.Internal.Data@@ -28,7 +30,11 @@  getRequest :: (MonadThrow m) => String -> HailgunContext -> [(BC.ByteString, Maybe BC.ByteString)] -> m NC.Request getRequest url context queryParams = do+#if MIN_VERSION_http_client(0,5,0)+   initRequest <- NC.parseUrlThrow url+#else    initRequest <- NC.parseUrl url+#endif    let request = appEndo (applyHailgunAuth context) $          initRequest             { NC.method = NM.methodGet@@ -41,7 +47,11 @@  postRequest :: (MonadThrow m, MonadIO m) => String -> HailgunContext -> [Part] -> m NC.Request postRequest url context parts = do+#if MIN_VERSION_http_client(0,5,0)+   initRequest <- NC.parseUrlThrow url+#else    initRequest <- NC.parseUrl url+#endif    let request = initRequest          { NC.method = NM.methodPost #if MIN_VERSION_http_client(0,5,0)@@ -77,5 +87,8 @@ responseDecode :: (FromJSON a) => NC.Response BLC.ByteString -> Either HailgunErrorResponse a responseDecode = mapError . eitherDecode . NC.responseBody +#if MIN_VERSION_http_client(0,5,0)+#else ignoreStatus :: a -> b -> c -> Maybe d ignoreStatus _ _ _ = Nothing+#endif
Mail/Hailgun/Domains.hs view
@@ -1,10 +1,13 @@+{-# LANGUAGE CPP #-} module Mail.Hailgun.Domains     ( getDomains     , HailgunDomainResponse(..)     , HailgunDomain(..)     ) where +#if __GLASGOW_HASKELL__ < 800 import           Control.Applicative+#endif import           Control.Monad              (mzero) import           Data.Aeson import qualified Data.Text                  as T@@ -13,7 +16,7 @@ import           Mail.Hailgun.Internal.Data import           Mail.Hailgun.MailgunApi import           Mail.Hailgun.Pagination-import           Network.HTTP.Client        (httpLbs, withManager)+import qualified Network.HTTP.Client        as NC import           Network.HTTP.Client.TLS    (tlsManagerSettings)  -- | Make a request to Mailgun for the domains against your account. This is a paginated request so you must specify@@ -24,7 +27,12 @@    -> IO (Either HailgunErrorResponse HailgunDomainResponse) -- ^ The IO response which is either an error or the list of domains. getDomains context page = do    request <- getRequest url context (toQueryParams . pageToParams $ page)-   response <- withManager tlsManagerSettings (httpLbs request)+#if MIN_VERSION_http_client(0,5,0)+   mgr <- NC.newManager tlsManagerSettings+   response <- NC.httpLbs request mgr+#else+   response <- NC.withManager tlsManagerSettings (NC.httpLbs request)+#endif    return $ parseResponse response    where       url = mailgunApiPrefix ++ "/domains"
Mail/Hailgun/Errors.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} module Mail.Hailgun.Errors     ( HailgunErrorResponse(..) -- TODO Make it so that herMessage is a hidden detail in the next version     , toHailgunError@@ -7,7 +8,9 @@     , mapError     ) where +#if __GLASGOW_HASKELL__ < 800 import           Control.Applicative+#endif import           Control.Monad       (mzero) import           Data.Aeson import qualified Data.Text           as T
Mail/Hailgun/Internal/Data.hs view
@@ -16,19 +16,24 @@     , AttachmentType(..)     ) where +#if __GLASGOW_HASKELL__ < 800 import           Control.Applicative+#endif import           Data.Aeson import qualified Data.ByteString      as B import qualified Data.ByteString.Lazy as BL import qualified Data.Text            as T import           Data.Time.Clock      (UTCTime (..))+#if MIN_VERSION_time(1,6,0)+import           Data.Time.Format     (ParseTime (..), parseTimeM)+#else import           Data.Time.Format     (ParseTime (..), parseTime)+#endif #if MIN_VERSION_time(1,9,0) import           Data.Time.Format.Internal (ParseTime (..)) #endif import           Data.Time.LocalTime  (zonedTimeToUTC) import qualified Network.HTTP.Client  as NHC-import qualified Text.Email.Validate  as TEV  #if MIN_VERSION_time(1,5,0) import           Data.Time.Format     (defaultTimeLocale)@@ -156,7 +161,11 @@ -- Example Input: 'Thu, 13 Oct 2011 18:02:00 GMT' instance FromJSON HailgunTime where    parseJSON = withText "HailgunTime" $ \t ->+#if MIN_VERSION_time(1,6,0)+      case parseTimeM True defaultTimeLocale "%a, %d %b %Y %T %Z" (T.unpack t) of+#else       case parseTime defaultTimeLocale "%a, %d %b %Y %T %Z" (T.unpack t) of+#endif          Just d -> pure d          _      -> fail "could not parse Mailgun Style date" 
Mail/Hailgun/Message.hs view
@@ -3,7 +3,6 @@     ) where  import           Control.Applicative-import           Data.Either                        (either) import qualified Data.ByteString.Char8              as BC import qualified Data.Text                          as T import           Data.Text.Encoding                 (encodeUtf8, decodeUtf8)
Mail/Hailgun/SendEmail.hs view
@@ -1,9 +1,12 @@+{-# LANGUAGE CPP #-} module Mail.Hailgun.SendEmail     ( sendEmail     , HailgunSendResponse(..)     ) where +#if __GLASGOW_HASKELL__ < 800 import           Control.Applicative+#endif import           Control.Monad                         (mzero) import           Data.Aeson import qualified Data.ByteString.Char8                 as BC@@ -14,11 +17,9 @@ import           Mail.Hailgun.Internal.Data import           Mail.Hailgun.MailgunApi import           Mail.Hailgun.PartUtil-import           Network.HTTP.Client                   (httpLbs, withManager)+import qualified Network.HTTP.Client                   as NC import qualified Network.HTTP.Client.MultipartFormData as NCM import           Network.HTTP.Client.TLS               (tlsManagerSettings)-import           Text.Email.Validate                   (EmailAddress,-                                                        toByteString)  -- | Send an email using the Mailgun API's. This method is capable of sending a message over the -- Mailgun service. All it needs is the appropriate context.@@ -28,7 +29,12 @@    -> IO (Either HailgunErrorResponse HailgunSendResponse) -- ^ The result of the sent email. Either a sent email or a successful send. sendEmail context message = do    request <- postRequest url context (toEmailParts message)-   response <- withManager tlsManagerSettings (httpLbs request)+#if MIN_VERSION_http_client(0,5,0)+   mgr <- NC.newManager tlsManagerSettings+   response <- NC.httpLbs request mgr+#else+   response <- NC.withManager tlsManagerSettings (NC.httpLbs request)+#endif    return $ parseResponse response    where       url = mailgunApiPrefixContext context ++ "/messages"
hailgun.cabal view
@@ -10,7 +10,7 @@ -- PVP summary:      +-+------- breaking API changes --                   | | +----- non-breaking API additions --                   | | | +--- code changes with no API change-version:             0.5.0+version:             0.5.1  -- A short (one-line) description of the package. synopsis:            Mailgun REST api interface for Haskell.