diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a747e6..7c18bee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Changelog ## Version 1.7.0 -- Unreleased * Fix data type `EventMessage` to not export partial fields +* Bump up min bound on time dep and fix deprecation warnings. ## Version 1.6.0 diff --git a/minio-hs.cabal b/minio-hs.cabal index 708ba6d..1ac3120 100644 --- a/minio-hs.cabal +++ b/minio-hs.cabal @@ -118,7 +118,7 @@ common base-settings , resourcet >= 1.2 , retry , text >= 1.2 - , time >= 1.8 + , time >= 1.9 , transformers >= 0.5 , unliftio >= 0.2 && < 0.3 , unliftio-core >= 0.2 && < 0.3 diff --git a/src/Network/Minio/Data/Time.hs b/src/Network/Minio/Data/Time.hs index c2699e4..2c5760c 100644 --- a/src/Network/Minio/Data/Time.hs +++ b/src/Network/Minio/Data/Time.hs @@ -27,6 +27,7 @@ where import Data.ByteString.Char8 (pack) import qualified Data.Time as Time +import Data.Time.Format.ISO8601 (iso8601Show) import Lib.Prelude -- | Time to expire for a presigned URL. It interpreted as a number of @@ -49,4 +50,4 @@ awsParseTime :: [Char] -> Maybe UTCTime awsParseTime = Time.parseTimeM False Time.defaultTimeLocale "%Y%m%dT%H%M%SZ" iso8601TimeFormat :: UTCTime -> [Char] -iso8601TimeFormat = Time.formatTime Time.defaultTimeLocale (Time.iso8601DateFormat $ Just "%T%QZ") +iso8601TimeFormat = iso8601Show diff --git a/src/Network/Minio/XmlParser.hs b/src/Network/Minio/XmlParser.hs index 7ab2178..06ce443 100644 --- a/src/Network/Minio/XmlParser.hs +++ b/src/Network/Minio/XmlParser.hs @@ -36,16 +36,13 @@ import Data.List (zip4, zip6) import qualified Data.Text as T import Data.Text.Read (decimal) import Data.Time +import Data.Time.Format.ISO8601 (iso8601ParseM) import Lib.Prelude import Network.Minio.Data import Network.Minio.Errors import Text.XML import Text.XML.Cursor hiding (bool) --- | Represent the time format string returned by S3 API calls. -s3TimeFormat :: [Char] -s3TimeFormat = iso8601DateFormat $ Just "%T%QZ" - -- | Helper functions. uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e uncurry4 f (a, b, c, d) = f a b c d @@ -57,8 +54,8 @@ uncurry6 f (a, b, c, d, e, g) = f a b c d e g parseS3XMLTime :: MonadIO m => Text -> m UTCTime parseS3XMLTime t = maybe (throwIO $ MErrVXmlParse $ "timestamp parse failure: " <> t) return $ - parseTimeM True defaultTimeLocale s3TimeFormat $ - T.unpack t + iso8601ParseM $ + toString t parseDecimal :: (MonadIO m, Integral a) => Text -> m a parseDecimal numStr =