packages feed

aws 0.9 → 0.9.1

raw patch · 5 files changed

+40/−5 lines, 5 filesdep ~transformersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: transformers

API changes (from Hackage documentation)

+ Aws.Core: instance Monoid m => Applicative (Response m)
+ Aws.S3.Commands.GetBucket: gbrNextMarker :: GetBucketResponse -> Maybe Text
+ Aws.S3.Commands.GetBucket: instance IteratedTransaction GetBucket GetBucketResponse
+ Aws.S3.Core: Glacier :: StorageClass
- Aws.S3.Commands.GetBucket: GetBucketResponse :: Bucket -> Maybe Text -> Maybe Text -> Maybe Int -> Maybe Text -> [ObjectInfo] -> [Text] -> Bool -> GetBucketResponse
+ Aws.S3.Commands.GetBucket: GetBucketResponse :: Bucket -> Maybe Text -> Maybe Text -> Maybe Int -> Maybe Text -> [ObjectInfo] -> [Text] -> Bool -> Maybe Text -> GetBucketResponse

Files

Aws/Core.hs view
@@ -155,11 +155,15 @@  --multiResponse :: Monoid m => Response m a -> Response [m] a -> +instance Monoid m => Applicative (Response m) where+    pure x = Response mempty (Right x)+    (<*>) = ap+ instance Monoid m => Monad (Response m) where     return x = Response mempty (Right x)     Response m1 (Left e) >>= _ = Response m1 (Left e)     Response m1 (Right x) >>= f = let Response m2 y = f x-                                    in Response (m1 `mappend` m2) y -- currently using First-semantics, Last SHOULD work too+                                  in Response (m1 `mappend` m2) y -- currently using First-semantics, Last SHOULD work too  instance Monoid m => MonadThrow (Response m) where     throwM e = Response mempty (throwM e)@@ -636,6 +640,8 @@ parseHttpDate s =     p "%a, %d %b %Y %H:%M:%S GMT" s -- rfc1123-date                   <|> p "%A, %d-%b-%y %H:%M:%S GMT" s -- rfc850-date                   <|> p "%a %b %_d %H:%M:%S %Y" s     -- asctime-date+                  <|> p "%Y-%m-%dT%H:%M:%S%QZ" s      -- iso 8601+                  <|> p "%Y-%m-%dT%H:%M:%S%Q%Z" s     -- iso 8601   where p = parseTime defaultTimeLocale  -- | HTTP-date (section 3.3.1 of RFC 2616, first type - RFC1123-style)
Aws/S3/Commands/GetBucket.hs view
@@ -44,6 +44,7 @@       , gbrContents       :: [ObjectInfo]       , gbrCommonPrefixes :: [T.Text]       , gbrIsTruncated    :: Bool+      , gbrNextMarker     :: Maybe T.Text       }     deriving (Show) @@ -78,6 +79,7 @@                        let marker = listToMaybe $ cursor $/ elContent "Marker"                        maxKeys <- Data.Traversable.sequence . listToMaybe $ cursor $/ elContent "MaxKeys" &| textReadInt                        let truncated = maybe True (/= "false") $ listToMaybe $ cursor $/ elContent "IsTruncated"+                       let nextMarker = listToMaybe $ cursor $/ elContent "NextMarker"                        let prefix = listToMaybe $ cursor $/ elContent "Prefix"                        contents <- sequence $ cursor $/ Cu.laxElement "Contents" &| parseObjectInfo                        let commonPrefixes = cursor $/ Cu.laxElement "CommonPrefixes" &// Cu.content@@ -90,9 +92,17 @@                                               , gbrContents       = contents                                               , gbrCommonPrefixes = commonPrefixes                                               , gbrIsTruncated    = truncated+                                              , gbrNextMarker     = nextMarker                                               }  instance Transaction GetBucket GetBucketResponse++instance IteratedTransaction GetBucket GetBucketResponse where+    nextIteratedRequest request response+        = case (gbrIsTruncated response, gbrNextMarker response, gbrContents response) of+            (True, Just marker, _             ) -> Just $ request { gbMarker = Just marker }+            (True, Nothing,     contents@(_:_)) -> Just $ request { gbMarker = Just $ objectKey $ last contents }+            (_,    _,           _             ) -> Nothing  instance AsMemoryResponse GetBucketResponse where     type MemoryResponse GetBucketResponse = GetBucketResponse
Aws/S3/Core.hs view
@@ -14,6 +14,7 @@ import           Data.List import           Data.Maybe import           Data.Monoid+import           Control.Applicative            ((<|>)) import           Data.Time import           Data.Typeable import           System.Locale@@ -304,16 +305,19 @@ data StorageClass     = Standard     | ReducedRedundancy+    | Glacier     deriving (Show)  parseStorageClass :: MonadThrow m => T.Text -> m StorageClass parseStorageClass "STANDARD"           = return Standard parseStorageClass "REDUCED_REDUNDANCY" = return ReducedRedundancy+parseStorageClass "GLACIER"            = return Glacier parseStorageClass s = throwM . XmlException $ "Invalid Storage Class: " ++ T.unpack s  writeStorageClass :: StorageClass -> T.Text writeStorageClass Standard          = "STANDARD" writeStorageClass ReducedRedundancy = "REDUCED_REDUNDANCY"+writeStorageClass Glacier           = "GLACIER"  data ServerSideEncryption     = AES256@@ -359,7 +363,8 @@ parseObjectInfo :: MonadThrow m => Cu.Cursor -> m ObjectInfo parseObjectInfo el     = do key <- force "Missing object Key" $ el $/ elContent "Key"-         let time s = case parseTime defaultTimeLocale "%Y-%m-%dT%H:%M:%S%QZ" $ T.unpack s of+         let time s = case (parseTime defaultTimeLocale "%Y-%m-%dT%H:%M:%S%QZ" $ T.unpack s) <|>+                           (parseTime defaultTimeLocale "%Y-%m-%dT%H:%M:%S%Q%Z" $ T.unpack s) of                         Nothing -> throwM $ XmlException "Invalid time"                         Just v -> return v          lastModified <- forceM "Missing object LastModified" $ el $/ elContent "LastModified" &| time
README.org view
@@ -88,6 +88,20 @@  * Release Notes +** 0.9 series++- 0.9.1+  - Support for multi-page S3 GetBucket requests+  - S3 GLACIER support+  - Applicative instance for Response to conform to the Applicative-Monad Proposal+  - Compatibility with transformers 0.4++- 0.9+  - Interface changes:+    - attempt and failure were deprecated, remove+    - switch to new cryptohash interface+  - updated version bounds of conduit and xml-conduit+ ** 0.8 series  - 0.8.6
aws.cabal view
@@ -1,5 +1,5 @@ Name:                aws-Version:             0.9+Version:             0.9.1 Synopsis:            Amazon Web Services (AWS) for Haskell Description:         Bindings for Amazon Web Services (AWS), with the aim of supporting all AWS services. To see a high level overview of the library, see the README at <https://github.com/aristidb/aws/blob/master/README.org>. Homepage:            http://github.com/aristidb/aws@@ -20,7 +20,7 @@ Source-repository this   type: git   location: https://github.com/aristidb/aws.git-  tag: 0.9+  tag: 0.9.1  Source-repository head   type: git@@ -123,7 +123,7 @@                        resourcet            >= 1.1     && < 1.2,                        text                 >= 0.11,                        time                 >= 1.1.4   && < 1.5,-                       transformers         >= 0.2.2.0 && < 0.4,+                       transformers         >= 0.2.2 && < 0.5,                        unordered-containers >= 0.2,                        utf8-string          == 0.3.*,                        vector               >= 0.10,