packages feed

antiope-sns 1.0.0 → 3.1.0

raw patch · 4 files changed

+74/−25 lines, 4 filesdep +unliftio-corePVP ok

version bump matches the API change (PVP)

Dependencies added: unliftio-core

API changes (from Hackage documentation)

- Antiope.SNS: MessageId :: Text -> MessageId
- Antiope.SNS: Protocol :: Text -> Protocol
- Antiope.SNS: SubscriptionArn :: Text -> SubscriptionArn
- Antiope.SNS: class (Functor m, Applicative m, Monad m, MonadIO m, MonadCatch m) => MonadAWS (m :: * -> *)
- Antiope.SNS: instance GHC.Classes.Eq Antiope.SNS.MessageId
- Antiope.SNS: instance GHC.Classes.Eq Antiope.SNS.Protocol
- Antiope.SNS: instance GHC.Classes.Eq Antiope.SNS.SubscriptionArn
- Antiope.SNS: instance GHC.Classes.Ord Antiope.SNS.MessageId
- Antiope.SNS: instance GHC.Classes.Ord Antiope.SNS.Protocol
- Antiope.SNS: instance GHC.Classes.Ord Antiope.SNS.SubscriptionArn
- Antiope.SNS: instance GHC.Show.Show Antiope.SNS.MessageId
- Antiope.SNS: instance GHC.Show.Show Antiope.SNS.Protocol
- Antiope.SNS: instance GHC.Show.Show Antiope.SNS.SubscriptionArn
- Antiope.SNS: instance Network.AWS.Data.Text.FromText Antiope.SNS.MessageId
- Antiope.SNS: instance Network.AWS.Data.Text.FromText Antiope.SNS.Protocol
- Antiope.SNS: instance Network.AWS.Data.Text.FromText Antiope.SNS.SubscriptionArn
- Antiope.SNS: instance Network.AWS.Data.Text.ToText Antiope.SNS.MessageId
- Antiope.SNS: instance Network.AWS.Data.Text.ToText Antiope.SNS.Protocol
- Antiope.SNS: instance Network.AWS.Data.Text.ToText Antiope.SNS.SubscriptionArn
- Antiope.SNS: newtype MessageId
- Antiope.SNS: newtype Protocol
- Antiope.SNS: newtype SubscriptionArn
+ Antiope.SNS.Classy: publishMessage :: MonadAWS m => Topic -> Text -> m (Maybe MessageId)
+ Antiope.SNS.Classy: subscribeTopic :: MonadAWS m => Topic -> Protocol -> Endpoint -> m (Maybe SubscriptionArn)
+ Antiope.SNS.Types: MessageId :: Text -> MessageId
+ Antiope.SNS.Types: Protocol :: Text -> Protocol
+ Antiope.SNS.Types: SubscriptionArn :: Text -> SubscriptionArn
+ Antiope.SNS.Types: instance GHC.Classes.Eq Antiope.SNS.Types.MessageId
+ Antiope.SNS.Types: instance GHC.Classes.Eq Antiope.SNS.Types.Protocol
+ Antiope.SNS.Types: instance GHC.Classes.Eq Antiope.SNS.Types.SubscriptionArn
+ Antiope.SNS.Types: instance GHC.Classes.Ord Antiope.SNS.Types.MessageId
+ Antiope.SNS.Types: instance GHC.Classes.Ord Antiope.SNS.Types.Protocol
+ Antiope.SNS.Types: instance GHC.Classes.Ord Antiope.SNS.Types.SubscriptionArn
+ Antiope.SNS.Types: instance GHC.Show.Show Antiope.SNS.Types.MessageId
+ Antiope.SNS.Types: instance GHC.Show.Show Antiope.SNS.Types.Protocol
+ Antiope.SNS.Types: instance GHC.Show.Show Antiope.SNS.Types.SubscriptionArn
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.FromText Antiope.SNS.Types.MessageId
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.FromText Antiope.SNS.Types.Protocol
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.FromText Antiope.SNS.Types.SubscriptionArn
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.ToText Antiope.SNS.Types.MessageId
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.ToText Antiope.SNS.Types.Protocol
+ Antiope.SNS.Types: instance Network.AWS.Data.Text.ToText Antiope.SNS.Types.SubscriptionArn
+ Antiope.SNS.Types: newtype MessageId
+ Antiope.SNS.Types: newtype Protocol
+ Antiope.SNS.Types: newtype SubscriptionArn
- Antiope.SNS: publishMessage :: MonadAWS m => Topic -> Text -> m (Maybe MessageId)
+ Antiope.SNS: publishMessage :: (MonadUnliftIO m, HasEnv e) => e -> Topic -> Text -> m (Maybe MessageId)
- Antiope.SNS: subscribeTopic :: MonadAWS m => Topic -> Protocol -> Endpoint -> m (Maybe SubscriptionArn)
+ Antiope.SNS: subscribeTopic :: (MonadUnliftIO m, HasEnv e) => e -> Topic -> Protocol -> Endpoint -> m (Maybe SubscriptionArn)

Files

antiope-sns.cabal view
@@ -1,23 +1,22 @@--- This file has been generated from package.yaml by hpack version 0.20.0.+-- This file has been generated from package.yaml by hpack version 0.28.2. -- -- see: https://github.com/sol/hpack ----- hash: 2bc4d9dfd35dab184e47ae0e005d66572c189b238be10abc23fa08483e32c0fd+-- hash: 93f3ede5514ee3770c51cb102356ac384c23f82b7d466814d10702b612f996f9  name:           antiope-sns-version:        1.0.0+version:        3.1.0 description:    Please see the README on Github at <https://github.com/arbor/antiope#readme> category:       Services homepage:       https://github.com/arbor/antiope#readme bug-reports:    https://github.com/arbor/antiope/issues-author:         Tyler Durden+author:         Arbor Networks maintainer:     mayhem@arbor.net copyright:      Arbor Networks license:        MIT license-file:   LICENSE build-type:     Simple cabal-version:  >= 1.10- extra-source-files:     ChangeLog.md     README.md@@ -40,8 +39,11 @@     , generic-lens     , lens     , text+    , unliftio-core   exposed-modules:       Antiope.SNS+      Antiope.SNS.Classy+      Antiope.SNS.Types   other-modules:       Paths_antiope_sns   default-language: Haskell2010@@ -63,6 +65,7 @@     , generic-lens     , lens     , text+    , unliftio-core   other-modules:       Paths_antiope_sns   default-language: Haskell2010
src/Antiope/SNS.hs view
@@ -1,31 +1,36 @@ module Antiope.SNS-( MonadAWS-, MessageId (..)-, Protocol (..)-, SubscriptionArn (..)-, publishMessage-, subscribeTopic-, module Network.AWS.SNS-) where+  ( publishMessage+  , subscribeTopic+  , module Antiope.SNS.Types+  , module Network.AWS.SNS+  ) where +import Antiope.SNS.Types import Control.Lens-import Data.Text             (Text)-import Network.AWS           (MonadAWS, send)-import Network.AWS.Data.Text (FromText (..), ToText (..))+import Control.Monad.IO.Unlift (MonadUnliftIO)+import Data.Text               (Text)+import Network.AWS             (HasEnv) import Network.AWS.SNS -newtype MessageId = MessageId Text deriving (Show, Eq, Ord, ToText, FromText)-newtype Protocol = Protocol Text deriving (Show, Eq, Ord, ToText, FromText)-newtype SubscriptionArn = SubscriptionArn Text deriving (Show, Eq, Ord, ToText, FromText)+import qualified Network.AWS as AWS -publishMessage :: MonadAWS m => Topic -> Text -> m (Maybe MessageId)-publishMessage topicArn message = do-  resp <- send $ publish message & pTopicARN <>~ (topicArn ^. tTopicARN)+publishMessage :: (MonadUnliftIO m, HasEnv e)+  => e+  -> Topic+  -> Text+  -> m (Maybe MessageId)+publishMessage e topicArn message = do+  resp <- AWS.runResourceT $ AWS.runAWS e $ AWS.send $ publish message & pTopicARN <>~ (topicArn ^. tTopicARN)   return $ MessageId <$> resp ^. prsMessageId -subscribeTopic :: MonadAWS m => Topic -> Protocol -> Endpoint -> m (Maybe SubscriptionArn)-subscribeTopic topicArn (Protocol p) ep = case topicArn ^. tTopicARN of+subscribeTopic :: (MonadUnliftIO m, HasEnv e)+  => e+  -> Topic+  -> Protocol+  -> Endpoint+  -> m (Maybe SubscriptionArn)+subscribeTopic e topicArn (Protocol p) ep = case topicArn ^. tTopicARN of   Just t -> do-    resp <- send $ subscribe t p & subEndpoint <>~ (ep ^. eEndpointARN)+    resp <- AWS.runResourceT $ AWS.runAWS e $ AWS.send $ subscribe t p & subEndpoint <>~ (ep ^. eEndpointARN)     return $ SubscriptionArn <$> resp ^. srsSubscriptionARN   Nothing -> return Nothing
+ src/Antiope/SNS/Classy.hs view
@@ -0,0 +1,33 @@+module Antiope.SNS.Classy+  ( publishMessage+  , subscribeTopic+  , module Antiope.SNS.Types+  , module Network.AWS.SNS+  ) where++import Antiope.SNS.Types+import Control.Lens+import Data.Text         (Text)+import Network.AWS       (MonadAWS)+import Network.AWS.SNS++import qualified Network.AWS as AWS++publishMessage :: MonadAWS m+  => Topic+  -> Text+  -> m (Maybe MessageId)+publishMessage topicArn message = do+  resp <- AWS.send $ publish message & pTopicARN <>~ (topicArn ^. tTopicARN)+  return $ MessageId <$> resp ^. prsMessageId++subscribeTopic :: MonadAWS m+  => Topic+  -> Protocol+  -> Endpoint+  -> m (Maybe SubscriptionArn)+subscribeTopic topicArn (Protocol p) ep = case topicArn ^. tTopicARN of+  Just t -> do+    resp <- AWS.send $ subscribe t p & subEndpoint <>~ (ep ^. eEndpointARN)+    return $ SubscriptionArn <$> resp ^. srsSubscriptionARN+  Nothing -> return Nothing
+ src/Antiope/SNS/Types.hs view
@@ -0,0 +1,8 @@+module Antiope.SNS.Types where++import Data.Text             (Text)+import Network.AWS.Data.Text (FromText (..), ToText (..))++newtype MessageId = MessageId Text deriving (Show, Eq, Ord, ToText, FromText)+newtype Protocol = Protocol Text deriving (Show, Eq, Ord, ToText, FromText)+newtype SubscriptionArn = SubscriptionArn Text deriving (Show, Eq, Ord, ToText, FromText)