packages feed

amazonka-core 0.1.2 → 0.1.3

raw patch · 4 files changed

+42/−23 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Network.AWS.Types: _Errors :: Prism' (ServiceError a_aCM9) [ServiceError a_aCM9]
+ Network.AWS.Types: _Errors :: Prism' (ServiceError a_aCTO) [ServiceError a_aCTO]
- Network.AWS.Types: _HttpError :: Prism' (ServiceError a_aCM9) HttpException
+ Network.AWS.Types: _HttpError :: Prism' (ServiceError a_aCTO) HttpException
- Network.AWS.Types: _SerializerError :: Prism' (ServiceError a_aCM9) (Abbrev, String)
+ Network.AWS.Types: _SerializerError :: Prism' (ServiceError a_aCTO) (Abbrev, String)
- Network.AWS.Types: _ServiceError :: Prism' (ServiceError a_aCM9) (Abbrev, Status, a_aCM9)
+ Network.AWS.Types: _ServiceError :: Prism' (ServiceError a_aCTO) (Abbrev, Status, a_aCTO)
- Network.AWS.Types: rqBody :: Lens (Request a_aCLR) (Request a_aDW2) RqBody RqBody
+ Network.AWS.Types: rqBody :: Lens (Request a_aCTw) (Request a_aE3y) RqBody RqBody
- Network.AWS.Types: rqHeaders :: Lens (Request a_aCLR) (Request a_aDW3) [Header] [Header]
+ Network.AWS.Types: rqHeaders :: Lens (Request a_aCTw) (Request a_aE3z) [Header] [Header]
- Network.AWS.Types: rqMethod :: Lens (Request a_aCLR) (Request a_aDW4) StdMethod StdMethod
+ Network.AWS.Types: rqMethod :: Lens (Request a_aCTw) (Request a_aE3A) StdMethod StdMethod
- Network.AWS.Types: rqPath :: Lens (Request a_aCLR) (Request a_aDW5) ByteString ByteString
+ Network.AWS.Types: rqPath :: Lens (Request a_aCTw) (Request a_aE3B) ByteString ByteString
- Network.AWS.Types: rqQuery :: Lens (Request a_aCLR) (Request a_aDW6) Query Query
+ Network.AWS.Types: rqQuery :: Lens (Request a_aCTw) (Request a_aE3C) Query Query

Files

amazonka-core.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-core-version:               0.1.2+version:               0.1.3 synopsis:              Core functionality and data types for Amazonka libraries. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense
src/Network/AWS/Data/Internal/Numeric.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE ScopedTypeVariables        #-} {-# LANGUAGE TemplateHaskell            #-}  -- Module      : Network.AWS.Data.Internal.Numeric@@ -13,10 +14,10 @@  module Network.AWS.Data.Internal.Numeric where -import Control.Applicative import Control.Lens.TH import Control.Monad import Data.Aeson.Types+import Data.Monoid import Data.Scientific import Network.AWS.Data.Internal.ByteString import Network.AWS.Data.Internal.Query@@ -43,12 +44,16 @@         )  instance FromJSON Nat where-    parseJSON = parseJSON >=> \n ->-        case floatingOrInteger n of-            Left  _         -> fail $ "Cannot convert float to Natural: " ++ show n+    parseJSON = parseJSON >=> go+      where+        go n = case floatingOrInteger n of+            Left  (_ :: Double) -> fail (floatErr n)             Right i-                | n < 0     -> fail $ "Cannot convert negative number to Natural: " ++ show n-                | otherwise -> pure $ Nat (fromInteger i)+                | n < 0         -> fail (negateErr n)+                | otherwise     -> return . Nat $ fromInteger i++        floatErr  = mappend "Cannot convert float to Natural: " . show+        negateErr = mappend "Cannot convert negative number to Natural: " . show  instance ToJSON Nat where     toJSON = Number . flip scientific 0 . toInteger . unNat
src/Network/AWS/Data/Internal/Text.hs view
@@ -24,21 +24,23 @@  import           Control.Applicative import           Crypto.Hash-import           Data.Attoparsec.Text             (Parser)-import qualified Data.Attoparsec.Text             as AText-import           Data.ByteString                  (ByteString)-import           Data.CaseInsensitive             (CI)-import qualified Data.CaseInsensitive             as CI+import           Data.Attoparsec.Text              (Parser)+import qualified Data.Attoparsec.Text              as AText+import           Data.ByteString                   (ByteString)+import           Data.CaseInsensitive              (CI)+import qualified Data.CaseInsensitive              as CI import           Data.Int import           Data.Monoid-import           Data.Text                        (Text)-import qualified Data.Text                        as Text-import qualified Data.Text.Encoding               as Text-import qualified Data.Text.Lazy                   as LText-import           Data.Text.Lazy.Builder           (Builder)-import qualified Data.Text.Lazy.Builder           as Build-import qualified Data.Text.Lazy.Builder.Int       as Build-import qualified Data.Text.Lazy.Builder.RealFloat as Build+import           Data.Scientific+import           Data.Text                         (Text)+import qualified Data.Text                         as Text+import qualified Data.Text.Encoding                as Text+import qualified Data.Text.Lazy                    as LText+import           Data.Text.Lazy.Builder            (Builder)+import qualified Data.Text.Lazy.Builder            as Build+import qualified Data.Text.Lazy.Builder.Int        as Build+import qualified Data.Text.Lazy.Builder.RealFloat  as Build+import qualified Data.Text.Lazy.Builder.Scientific as Build import           Network.HTTP.Client import           Network.HTTP.Types import           Numeric.Natural@@ -58,6 +60,7 @@ 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 Natural    where parser = AText.decimal instance FromText Double     where parser = AText.rational @@ -94,6 +97,7 @@ instance ToText Int64      where toText = shortText . Build.decimal instance ToText Integer    where toText = shortText . Build.decimal instance ToText Natural    where toText = shortText . Build.decimal+instance ToText Scientific where toText = shortText . Build.scientificBuilder instance ToText Double     where toText = shortText . Build.realFloat instance ToText StdMethod  where toText = toText . renderStdMethod instance ToText (Digest a) where toText = toText . digestToHexByteString
src/Network/AWS/Data/Internal/Time.hs view
@@ -37,6 +37,7 @@ import           Data.Attoparsec.Text                 (Parser) import qualified Data.Attoparsec.Text                 as AText import qualified Data.ByteString.Char8                as BS+import           Data.Scientific import           Data.Tagged import qualified Data.Text                            as Text import           Data.Time@@ -95,7 +96,7 @@  instance FromText POSIX where     parser = Time . posixSecondsToUTCTime . realToFrac-        <$> (parser :: Parser Integer)+        <$> (parser :: Parser Scientific)  parseFormattedTime :: forall a. TimeFormat (Time a) => Parser (Time a) parseFormattedTime = do@@ -133,8 +134,14 @@ instance FromJSON ISO8601   where parseJSON = parseJSONText "ISO8601" instance FromJSON AWSTime   where parseJSON = parseJSONText "AWSTime" instance FromJSON BasicTime where parseJSON = parseJSONText "BasicTime"-instance FromJSON POSIX     where parseJSON = parseJSONText "POSIX" +instance FromJSON POSIX where+    parseJSON = withScientific "POSIX"+        $ pure+        . Time+        . posixSecondsToUTCTime+        . realToFrac+ instance ToByteString RFC822    where toBS = BS.pack . renderFormattedTime instance ToByteString ISO8601   where toBS = BS.pack . renderFormattedTime instance ToByteString BasicTime where toBS = BS.pack . renderFormattedTime@@ -155,4 +162,7 @@ instance ToJSON ISO8601   where toJSON = toJSONText instance ToJSON AWSTime   where toJSON = toJSONText instance ToJSON BasicTime where toJSON = toJSONText-instance ToJSON POSIX     where toJSON = toJSONText++instance ToJSON POSIX where+    toJSON (Time t) = Number $+        scientific (truncate (utcTimeToPOSIXSeconds t) :: Integer) 0