snaplet-ses-html 0.1.0.0 → 0.1.1.0
raw patch · 2 files changed
+28/−21 lines, 2 filesdep +adjunctionsdep +lensdep ~basedep ~snapPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: adjunctions, lens
Dependency ranges changed: base, snap
API changes (from Hackage documentation)
- Snap.Snaplet.SES: instance HasAWSKeys (Handler b AWSKeys)
- Snap.Snaplet.SES: instance MonadIO m => HasAWSKeys (ReaderT (Snaplet AWSKeys) m)
- Snap.Snaplet.SES: instance MonadIO m => HasAWSKeys (ReaderT AWSKeys m)
- Snap.Snaplet.SES: instance Show AWSKeys
- Snap.Snaplet.SES: publicKey :: AWSKeys -> PublicKey
- Snap.Snaplet.SES: region :: AWSKeys -> Region
- Snap.Snaplet.SES: secretKey :: AWSKeys -> SecretKey
- Snap.Snaplet.SES: sender :: AWSKeys -> Text
+ Snap.Snaplet.SES: [publicKey] :: AWSKeys -> PublicKey
+ Snap.Snaplet.SES: [region] :: AWSKeys -> Region
+ Snap.Snaplet.SES: [secretKey] :: AWSKeys -> SecretKey
+ Snap.Snaplet.SES: [sender] :: AWSKeys -> Text
+ Snap.Snaplet.SES: instance Control.Monad.IO.Class.MonadIO m => Snap.Snaplet.SES.HasAWSKeys (Control.Monad.Trans.Reader.ReaderT (Snap.Snaplet.Internal.Types.Snaplet Snap.Snaplet.SES.AWSKeys) m)
+ Snap.Snaplet.SES: instance Control.Monad.IO.Class.MonadIO m => Snap.Snaplet.SES.HasAWSKeys (Control.Monad.Trans.Reader.ReaderT Snap.Snaplet.SES.AWSKeys m)
+ Snap.Snaplet.SES: instance GHC.Show.Show Snap.Snaplet.SES.AWSKeys
+ Snap.Snaplet.SES: instance Snap.Snaplet.SES.HasAWSKeys (Snap.Snaplet.Internal.Types.Handler b Snap.Snaplet.SES.AWSKeys)
Files
- snaplet-ses-html.cabal +5/−3
- src/Snap/Snaplet/SES.hs +23/−18
snaplet-ses-html.cabal view
@@ -1,5 +1,5 @@ name: snaplet-ses-html-version: 0.1.0.0+version: 0.1.1.0 synopsis: Snaplet for the ses-html package description: Send HTML formatted emails using Amazon's SES REST API with blaze license: BSD3@@ -14,14 +14,16 @@ library exposed-modules: Snap.Snaplet.SES hs-source-dirs: src- build-depends: base >=4.7 && <4.8+ build-depends: base >=4.7 && <4.9 , blaze-html , bytestring , configurator , ses-html - , snap+ , snap >= 0.14 , text , transformers+ , adjunctions+ , lens default-language: Haskell2010 source-repository head
src/Snap/Snaplet/SES.hs view
@@ -13,17 +13,22 @@ , module Network.SES ) where -import Control.Monad.Trans.Reader (ReaderT, asks, ask)-import qualified Data.ByteString.Lazy.Char8 as BL8-import qualified Data.Configurator as C-import Data.Maybe (fromMaybe)-import Data.Monoid (mempty)-import Data.Text (Text)-import Data.Text.Encoding (encodeUtf8)-import Network.SES hiding (sendEmail, sendEmailBlaze)-import qualified Network.SES as SES+import Control.Applicative ((<$>), (<*>))+import Control.Lens ((^#))+import Control.Monad.IO.Class+import Control.Monad.Representable.State (get)+import Control.Monad.Trans.Reader (ReaderT, ask, asks)+import qualified Data.ByteString.Lazy.Char8 as BL8+import qualified Data.Configurator as C+import Data.Maybe (fromMaybe)+import Data.Monoid (mempty)+import Data.Text (Text)+import Data.Text.Encoding (encodeUtf8)+import Network.SES hiding (sendEmail,+ sendEmailBlaze)+import qualified Network.SES as SES import Snap-import qualified Text.Blaze.Html5 as H+import qualified Text.Blaze.Html5 as H ------------------------------------------------------------------------------ -- | Type to hold AWS Config Information@@ -51,10 +56,10 @@ ------------------------------------------------------------------------------ -- | Helper function for operating on `AWSKeys` inside of `HasAWSKeys` constrained Monads withKeys- :: HasAWSKeys m + :: HasAWSKeys m => (AWSKeys -> IO a) -- ^ Function operating on Keys- -> m a -withKeys f = getKeys >>= liftIO . f + -> m a+withKeys f = getKeys >>= liftIO . f ------------------------------------------------------------------------------ -- | Send Blaze email from a snap handler@@ -105,19 +110,19 @@ -- > {-# LANGUAGE RecordWildCards #-} -- > {-# LANGUAGE TemplateHaskell #-} -- > module Main ( main ) where--- > +-- > -- > import Control.Lens -- > import qualified Data.ByteString.Char8 as B8 -- > import qualified Data.ByteString.Lazy.Char8 as BL8 -- > import Snap -- > import Snap.Snaplet.SES--- > +-- > -- > data App = App { -- > _awsKeys :: Snaplet AWSKeys -- > }--- > +-- > -- > makeLenses ''App--- > +-- > -- > initApp :: SnapletInit App App -- > initApp = makeSnaplet "name" "description" Nothing $ do -- > _awsKeys <- nestSnaplet "ses-html" awsKeys initAWSKeys@@ -129,7 +134,7 @@ -- > result <- with awsKeys $ sendEmail ["david@solidtranslate.com"] "cookie-crisp" "<h1>TEST</h1>" -- > liftIO $ print result -- > writeBS "done"--- > +-- > -- > main :: IO () -- > main = do (_, app, _) <- runSnaplet Nothing initApp -- > httpServe config app