diff options
author | matoro <matoro@users.noreply.github.com> | 2022-07-24 20:56:04 -0400 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-07-30 06:58:33 +0100 |
commit | e6fce1394f9b8ed2d9d2cde96c0ce1862fc18514 (patch) | |
tree | 5f9595e37bbe6ede33ff44a9096345ae0d31259d /dev-haskell/aws/files | |
parent | dev-haskell/yesod-static: keyword 1.6.1.0 for ~ppc64 (diff) | |
download | gentoo-e6fce1394f9b8ed2d9d2cde96c0ce1862fc18514.tar.gz gentoo-e6fce1394f9b8ed2d9d2cde96c0ce1862fc18514.tar.bz2 gentoo-e6fce1394f9b8ed2d9d2cde96c0ce1862fc18514.zip |
dev-haskell/aws: revbump 0.22-r5
https://github.com/gentoo-haskell/gentoo-haskell/commit/0db57ec34e40587313df7778ebd13914d795938e
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-haskell/aws/files')
-rw-r--r-- | dev-haskell/aws/files/aws-0.22-aeson-2.patch | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/dev-haskell/aws/files/aws-0.22-aeson-2.patch b/dev-haskell/aws/files/aws-0.22-aeson-2.patch new file mode 100644 index 000000000000..25d5966ed0a7 --- /dev/null +++ b/dev-haskell/aws/files/aws-0.22-aeson-2.patch @@ -0,0 +1,185 @@ +From 7af7586c5d244d07f77d49e5fdc739e6e8e54816 Mon Sep 17 00:00:00 2001 +From: Joey Hess <joeyh@joeyh.name> +Date: Mon, 18 Oct 2021 14:35:30 -0400 +Subject: [PATCH] build with aeson 2 + +--- + Aws/DynamoDb/Commands/Table.hs | 4 +-- + Aws/DynamoDb/Commands/UpdateItem.hs | 5 ++-- + Aws/DynamoDb/Core.hs | 39 +++++++++++++++-------------- + aws.cabal | 2 +- + 4 files changed, 26 insertions(+), 24 deletions(-) + +diff --git a/Aws/DynamoDb/Commands/Table.hs b/Aws/DynamoDb/Commands/Table.hs +index 5fb42e0..a5fe025 100644 +--- a/Aws/DynamoDb/Commands/Table.hs ++++ b/Aws/DynamoDb/Commands/Table.hs +@@ -35,9 +35,9 @@ module Aws.DynamoDb.Commands.Table + import Control.Applicative + import Data.Aeson ((.!=), (.:), (.:?), (.=)) + import qualified Data.Aeson as A ++import qualified Data.Aeson.KeyMap as KM + import qualified Data.Aeson.Types as A + import Data.Char (toUpper) +-import qualified Data.HashMap.Strict as M + import Data.Scientific (Scientific) + import qualified Data.Text as T + import Data.Time +@@ -281,7 +281,7 @@ data TableDescription + + instance A.FromJSON TableDescription where + parseJSON = A.withObject "Table must be an object" $ \o -> do +- t <- case (M.lookup "Table" o, M.lookup "TableDescription" o) of ++ t <- case (KM.lookup "Table" o, KM.lookup "TableDescription" o) of + (Just (A.Object t), _) -> return t + (_, Just (A.Object t)) -> return t + _ -> fail "Table description must have key 'Table' or 'TableDescription'" +diff --git a/Aws/DynamoDb/Commands/UpdateItem.hs b/Aws/DynamoDb/Commands/UpdateItem.hs +index 0d94a59..1152b5a 100644 +--- a/Aws/DynamoDb/Commands/UpdateItem.hs ++++ b/Aws/DynamoDb/Commands/UpdateItem.hs +@@ -31,6 +31,7 @@ module Aws.DynamoDb.Commands.UpdateItem + ------------------------------------------------------------------------------- + import Control.Applicative + import Data.Aeson ++import qualified Data.Aeson.Key as AK + import Data.Default + import qualified Data.Text as T + import Prelude +@@ -91,9 +92,9 @@ instance ToJSON AttributeUpdates where + toJSON = object . map mk . getAttributeUpdates + where + mk AttributeUpdate { auAction = UDelete, auAttr = auAttr } = +- (attrName auAttr) .= object ++ (AK.fromText (attrName auAttr)) .= object + ["Action" .= UDelete] +- mk AttributeUpdate { .. } = (attrName auAttr) .= object ++ mk AttributeUpdate { .. } = AK.fromText (attrName auAttr) .= object + ["Value" .= (attrVal auAttr), "Action" .= auAction] + + +diff --git a/Aws/DynamoDb/Core.hs b/Aws/DynamoDb/Core.hs +index 1c116d3..b9a6cc4 100644 +--- a/Aws/DynamoDb/Core.hs ++++ b/Aws/DynamoDb/Core.hs +@@ -128,6 +128,8 @@ import Control.Monad.Trans.Resource (throwM) + import qualified Crypto.Hash as CH + import Data.Aeson + import qualified Data.Aeson as A ++import qualified Data.Aeson.Key as AK ++import qualified Data.Aeson.KeyMap as KM + import Data.Aeson.Types (Pair, parseEither) + import qualified Data.Aeson.Types as A + import qualified Data.Attoparsec.ByteString as AttoB (endOfInput) +@@ -141,7 +143,6 @@ import Data.Conduit + import Data.Conduit.Attoparsec (sinkParser) + import Data.Default + import Data.Function (on) +-import qualified Data.HashMap.Strict as HM + import Data.Int + import Data.IORef + import Data.List +@@ -536,7 +537,7 @@ instance ToJSON PrimaryKey where + toJSON (PrimaryKey h (Just r)) = + let Object p1 = toJSON h + Object p2 = toJSON r +- in Object (p1 `HM.union` p2) ++ in Object (p1 `KM.union` p2) + + instance FromJSON PrimaryKey where + parseJSON p = do +@@ -544,8 +545,8 @@ instance FromJSON PrimaryKey where + case length l of + 1 -> return $ head l + _ -> fail "Unable to parse PrimaryKey" +- where listPKey p'= map (\(txt,dval)-> hk txt dval) +- . HM.toList <$> parseJSON p' ++ where listPKey p'= map (\(k,dval)-> hk (AK.toText k) dval) ++ . KM.toList <$> parseJSON p' + + + -- | A key-value pair +@@ -661,9 +662,9 @@ instance ToJSON Attribute where + ------------------------------------------------------------------------------- + -- | Parse a JSON object that contains attributes + parseAttributeJson :: Value -> A.Parser [Attribute] +-parseAttributeJson (Object v) = mapM conv $ HM.toList v ++parseAttributeJson (Object v) = mapM conv $ KM.toList v + where +- conv (k, o) = Attribute k <$> parseJSON o ++ conv (k, o) = Attribute (AK.toText k) <$> parseJSON o + parseAttributeJson _ = error "Attribute JSON must be an Object" + + +@@ -674,7 +675,7 @@ attributesJson as = object $ map attributeJson as + + -- | Convert into JSON pair + attributeJson :: Attribute -> Pair +-attributeJson (Attribute nm v) = nm .= v ++attributeJson (Attribute nm v) = AK.fromText nm .= v + + + ------------------------------------------------------------------------------- +@@ -962,7 +963,7 @@ conditionsJson key (Conditions op es) = b ++ a + where + a = if null es + then [] +- else [key .= object (map conditionJson es)] ++ else [AK.fromText key .= object (map conditionJson es)] + + b = if length (take 2 es) > 1 + then ["ConditionalOperator" .= String (rendCondOp op) ] +@@ -1046,7 +1047,7 @@ renderCondOp c = case c of + + + conditionJson :: Condition -> Pair +-conditionJson Condition{..} = condAttr .= condOp ++conditionJson Condition{..} = AK.fromText condAttr .= condOp + + + instance ToJSON CondOp where +@@ -1076,12 +1077,12 @@ data ConsumedCapacity = ConsumedCapacity { + + + instance FromJSON ConsumedCapacity where +- parseJSON (Object v) = ConsumedCapacity +- <$> v .: "CapacityUnits" +- <*> (HM.toList <$> v .:? "GlobalSecondaryIndexes" .!= mempty) +- <*> (HM.toList <$> v .:? "LocalSecondaryIndexes" .!= mempty) +- <*> (v .:? "Table" >>= maybe (return Nothing) (.: "CapacityUnits")) +- <*> v .: "TableName" ++ parseJSON (Object o) = ConsumedCapacity ++ <$> o .: "CapacityUnits" ++ <*> (map (\(k, v) -> (AK.toText k, v)) . KM.toList <$> o .:? "GlobalSecondaryIndexes" .!= mempty) ++ <*> (map (\(k, v) -> (AK.toText k, v)) . KM.toList <$> o .:? "LocalSecondaryIndexes" .!= mempty) ++ <*> (o .:? "Table" >>= maybe (return Nothing) (.: "CapacityUnits")) ++ <*> o .: "TableName" + parseJSON _ = fail "ConsumedCapacity must be an Object." + + +@@ -1115,8 +1116,8 @@ data ItemCollectionMetrics = ItemCollectionMetrics { + + + instance FromJSON ItemCollectionMetrics where +- parseJSON (Object v) = ItemCollectionMetrics +- <$> (do m <- v .: "ItemCollectionKey" +- return $ head $ HM.toList m) +- <*> v .: "SizeEstimateRangeGB" ++ parseJSON (Object o) = ItemCollectionMetrics ++ <$> (do m <- o .: "ItemCollectionKey" ++ return $ (\(k, v) -> (AK.toText k, v)) $ head $ KM.toList m) ++ <*> o .: "SizeEstimateRangeGB" + parseJSON _ = fail "ItemCollectionMetrics must be an Object." + + +--- a/aws.cabal 2022-07-25 08:47:06.270139909 +1000 ++++ b/aws.cabal 2022-07-25 08:47:28.497479783 +1000 +@@ -35,7 +35,7 @@ + Default: True + + Library +- build-depends: aeson <1.6 ++ build-depends: aeson >= 2.0 + + Exposed-modules: + Aws |