packages feed

antiope-sqs 6.3.0 → 6.4.0

raw patch · 2 files changed

+54/−8 lines, 2 filesnew-uploaderPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Antiope.SQS.Messages: Many :: [a] -> Many a
+ Antiope.SQS.Messages: SqsMessage :: !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe Text -> !Maybe a -> SqsMessage a
+ Antiope.SQS.Messages: [body] :: SqsMessage a -> !Maybe a
+ Antiope.SQS.Messages: [md5OfBody] :: SqsMessage a -> !Maybe Text
+ Antiope.SQS.Messages: [messageId] :: SqsMessage a -> !Maybe Text
+ Antiope.SQS.Messages: [receiptHandle] :: SqsMessage a -> !Maybe Text
+ Antiope.SQS.Messages: [records] :: Many a -> [a]
+ Antiope.SQS.Messages: [senderId] :: SqsMessage a -> !Maybe Text
+ Antiope.SQS.Messages: data SqsMessage a
+ Antiope.SQS.Messages: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Antiope.SQS.Messages.Many a)
+ Antiope.SQS.Messages: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Antiope.SQS.Messages.SqsMessage a)
+ Antiope.SQS.Messages: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Antiope.SQS.Messages.Many a)
+ Antiope.SQS.Messages: instance GHC.Classes.Eq a => GHC.Classes.Eq (Antiope.SQS.Messages.Many a)
+ Antiope.SQS.Messages: instance GHC.Classes.Eq a => GHC.Classes.Eq (Antiope.SQS.Messages.SqsMessage a)
+ Antiope.SQS.Messages: instance GHC.Generics.Generic (Antiope.SQS.Messages.Many a)
+ Antiope.SQS.Messages: instance GHC.Generics.Generic (Antiope.SQS.Messages.SqsMessage a)
+ Antiope.SQS.Messages: instance GHC.Show.Show a => GHC.Show.Show (Antiope.SQS.Messages.Many a)
+ Antiope.SQS.Messages: instance GHC.Show.Show a => GHC.Show.Show (Antiope.SQS.Messages.SqsMessage a)
+ Antiope.SQS.Messages: newtype Many a

Files

antiope-sqs.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 610f11f14be9dc0bcd0ae1fa042fa11947b032a11fc8d912735aeb73fb2093c8+-- hash: 443e48287c77512b5c25fec64ac9d6cf85fec8c2c04eaf787c0ac373596918bd  name:           antiope-sqs-version:        6.3.0+version:        6.4.0 description:    Please see the README on Github at <https://github.com/arbor/antiope#readme> category:       Services homepage:       https://github.com/arbor/antiope#readme@@ -27,6 +27,11 @@   location: https://github.com/arbor/antiope  library+  exposed-modules:+      Antiope.SQS+      Antiope.SQS.Messages+  other-modules:+      Paths_antiope_sqs   hs-source-dirs:       src   default-extensions: BangPatterns GeneralizedNewtypeDeriving OverloadedStrings TupleSections@@ -49,15 +54,13 @@     , network-uri     , text     , unliftio-core-  exposed-modules:-      Antiope.SQS-  other-modules:-      Paths_antiope_sqs   default-language: Haskell2010  test-suite antiope-sqs-test   type: exitcode-stdio-1.0   main-is: Spec.hs+  other-modules:+      Paths_antiope_sqs   hs-source-dirs:       test   default-extensions: BangPatterns GeneralizedNewtypeDeriving OverloadedStrings TupleSections@@ -81,6 +84,4 @@     , network-uri     , text     , unliftio-core-  other-modules:-      Paths_antiope_sqs   default-language: Haskell2010
+ src/Antiope/SQS/Messages.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE DeriveGeneric #-}++module Antiope.SQS.Messages+  ( Many (..)+  , SqsMessage (..)+  ) where++import Data.Aeson   as Aeson+import Data.Text    (Text)+import GHC.Generics (Generic)++import qualified Data.Aeson.Types   as Aeson+import qualified Data.Text.Encoding as T++newtype Many a = Many { records :: [a] } deriving (Show, Eq, Generic)++instance FromJSON a => FromJSON (Many a) where+  parseJSON =+    withObject "Many" $ \obj ->+      Many <$> obj .: "Records"++instance ToJSON a => ToJSON (Many a) where+  toJSON (Many a) =+    object ["Records" Aeson..= a]++data SqsMessage a = SqsMessage+  { senderId      :: !(Maybe Text)+  , messageId     :: !(Maybe Text)+  , md5OfBody     :: !(Maybe Text)+  , receiptHandle :: !(Maybe Text)+  , body          :: !(Maybe a)+  } deriving (Show, Eq, Generic)++instance FromJSON a => FromJSON (SqsMessage a) where+  parseJSON = withObject "SqsMessage" $ \obj -> SqsMessage+    <$> obj .:? "SenderId"+    <*> obj .:? "MessageId"+    <*> obj .:? "Md5OfBody"+    <*> obj .:? "ReceiptHandle"+    <*> decodeEscaped obj "Body"++decodeEscaped :: FromJSON b => Object -> Text -> Aeson.Parser b+decodeEscaped o t =+  (o .: t) >>= (either fail pure . eitherDecodeStrict . T.encodeUtf8)+