amazonka-core 0.3.0 → 0.3.1
raw patch · 4 files changed
+41/−32 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Network.AWS.Data: extractRoot :: Text -> [Node] -> Maybe Element
- Network.AWS.Data: class ToXML a where toXML = (: []) . NodeElement . toXMLRoot
+ Network.AWS.Data: class ToXML a where toXML = maybeToList . fmap NodeElement . toXMLRoot
- Network.AWS.Data: namespaced :: Text -> Text -> [Node] -> Element
+ Network.AWS.Data: namespaced :: Text -> Text -> [Node] -> Maybe Element
- Network.AWS.Data: toXMLRoot :: ToXMLRoot a => a -> Element
+ Network.AWS.Data: toXMLRoot :: ToXMLRoot a => a -> Maybe Element
- Network.AWS.Types: _Errors :: Prism' (ServiceError a_az0m) [ServiceError a_az0m]
+ Network.AWS.Types: _Errors :: Prism' (ServiceError a_az6f) [ServiceError a_az6f]
- Network.AWS.Types: _HttpError :: Prism' (ServiceError a_az0m) HttpException
+ Network.AWS.Types: _HttpError :: Prism' (ServiceError a_az6f) HttpException
- Network.AWS.Types: _SerializerError :: Prism' (ServiceError a_az0m) (Abbrev, String)
+ Network.AWS.Types: _SerializerError :: Prism' (ServiceError a_az6f) (Abbrev, String)
- Network.AWS.Types: _ServiceError :: Prism' (ServiceError a_az0m) (Abbrev, Status, a_az0m)
+ Network.AWS.Types: _ServiceError :: Prism' (ServiceError a_az6f) (Abbrev, Status, a_az6f)
- Network.AWS.Types: rqBody :: Lens (Request a_ayZN) (Request a_aA8j) RqBody RqBody
+ Network.AWS.Types: rqBody :: Lens (Request a_az5G) (Request a_aAec) RqBody RqBody
- Network.AWS.Types: rqHeaders :: Lens (Request a_ayZN) (Request a_aA8k) [Header] [Header]
+ Network.AWS.Types: rqHeaders :: Lens (Request a_az5G) (Request a_aAed) [Header] [Header]
- Network.AWS.Types: rqMethod :: Lens (Request a_ayZN) (Request a_aA8l) StdMethod StdMethod
+ Network.AWS.Types: rqMethod :: Lens (Request a_az5G) (Request a_aAee) StdMethod StdMethod
- Network.AWS.Types: rqPath :: Lens (Request a_ayZN) (Request a_aA8m) ByteString ByteString
+ Network.AWS.Types: rqPath :: Lens (Request a_az5G) (Request a_aAef) ByteString ByteString
- Network.AWS.Types: rqQuery :: Lens (Request a_ayZN) (Request a_aA8n) Query Query
+ Network.AWS.Types: rqQuery :: Lens (Request a_az5G) (Request a_aAeg) Query Query
Files
- amazonka-core.cabal +1/−1
- src/Network/AWS/Data/Internal/Text.hs +4/−4
- src/Network/AWS/Data/Internal/XML.hs +29/−19
- src/Network/AWS/Waiters.hs +7/−8
amazonka-core.cabal view
@@ -1,5 +1,5 @@ name: amazonka-core-version: 0.3.0+version: 0.3.1 synopsis: Core functionality and data types for Amazonka libraries. homepage: https://github.com/brendanhay/amazonka license: OtherLicense
src/Network/AWS/Data/Internal/Text.hs view
@@ -59,11 +59,11 @@ instance FromText Text where parser = AText.takeText instance FromText ByteString where parser = Text.encodeUtf8 <$> AText.takeText-instance FromText Int where parser = AText.decimal-instance FromText Integer where parser = AText.decimal-instance FromText Scientific where parser = AText.scientific+instance FromText Int where parser = AText.signed AText.decimal+instance FromText Integer where parser = AText.signed AText.decimal+instance FromText Scientific where parser = AText.signed AText.scientific instance FromText Natural where parser = AText.decimal-instance FromText Double where parser = AText.rational+instance FromText Double where parser = AText.signed AText.rational instance FromText Bool where parser = matchCI "false" False <|> matchCI "true" True
src/Network/AWS/Data/Internal/XML.hs view
@@ -37,19 +37,20 @@ , element , nodes , (=@)+ , extractRoot , unsafeToXML ) where -import Control.Applicative-import Control.Monad-import Data.Default.Class-import Data.Maybe-import Data.Monoid-import Data.Text (Text)-import Network.AWS.Data.Internal.ByteString-import Network.AWS.Data.Internal.Text-import Numeric.Natural-import Text.XML+import Control.Applicative+import Control.Monad+import Data.Default.Class+import Data.Maybe+import Data.Monoid+import Data.Text (Text)+import Network.AWS.Data.Internal.ByteString+import Network.AWS.Data.Internal.Text+import Numeric.Natural+import Text.XML decodeXML :: LazyByteString -> Either String [Node] decodeXML = either failure success . parseLBS def@@ -58,11 +59,11 @@ success = Right . elementNodes . documentRoot encodeXML :: ToXMLRoot a => a -> LazyByteString-encodeXML x = renderLBS def d+encodeXML = maybe mempty (renderLBS def . d) . toXMLRoot where- d = Document+ d x = Document { documentPrologue = p- , documentRoot = toXMLRoot x+ , documentRoot = x , documentEpilogue = [] } @@ -92,8 +93,8 @@ (.!@) :: Either String (Maybe a) -> a -> Either String a f .!@ x = fromMaybe x <$> f -namespaced :: Text -> Text -> [Node] -> Element-namespaced g l = element (Name l (Just g) Nothing)+namespaced :: Text -> Text -> [Node] -> Maybe Element+namespaced g l = Just . element (Name l (Just g) Nothing) element :: Name -> [Node] -> Element element n = Element n mempty@@ -104,9 +105,18 @@ (=@) :: ToXML a => Name -> a -> Node n =@ x = NodeElement (element n (toXML x)) +extractRoot :: Text -> [Node] -> Maybe Element+extractRoot g ns =+ case ns of+ [NodeElement x] -> Just x { elementName = rename x }+ _ -> Nothing+ where+ rename x = (elementName x) { nameNamespace = Just g }+ -- | /Caution:/ This is for use with types which are 'flattened' in--- AWS service model terminology. It is applied by the generator/templating--- in safe contexts only.+-- AWS service model terminology.+--+-- It is applied by the generator/templating in safe contexts only. unsafeToXML :: (Show a, ToXML a) => a -> Node unsafeToXML x = fromMaybe (error $ "Failed to unflatten node-list for: " ++ show x)@@ -169,13 +179,13 @@ instance FromXML Bool where parseXML = parseXMLText "Bool" class ToXMLRoot a where- toXMLRoot :: a -> Element+ toXMLRoot :: a -> Maybe Element class ToXML a where toXML :: a -> [Node] default toXML :: ToXMLRoot a => a -> [Node]- toXML = (:[]) . NodeElement . toXMLRoot+ toXML = maybeToList . fmap NodeElement . toXMLRoot instance ToXML a => ToXML (Maybe a) where toXML (Just x) = toXML x
src/Network/AWS/Waiters.hs view
@@ -2,7 +2,6 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-}-{-# LANGUAGE ViewPatterns #-} -- Module : Network.AWS.Waiters -- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>@@ -34,13 +33,13 @@ , module Control.Lens ) where -import Control.Lens-import Data.ByteString (ByteString)-import Data.Maybe-import Network.AWS.Data-import Network.AWS.Error-import Network.AWS.Types-import Network.HTTP.Types+import Control.Lens+import Data.ByteString (ByteString)+import Data.Maybe+import Network.AWS.Data+import Network.AWS.Error+import Network.AWS.Types+import Network.HTTP.Types type Acceptor a = Request a -> Response' a -> Maybe Accept