yesod-transloadit 0.1.0.0 → 0.1.1.0
raw patch · 2 files changed
+11/−10 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- src/Yesod/Transloadit.hs +10/−9
- yesod-transloadit.cabal +1/−1
src/Yesod/Transloadit.hs view
@@ -28,16 +28,13 @@ import Control.Monad (mzero) import Crypto.Hash import Data.Aeson-import Data.Aeson.Encode (encodeToTextBuilder) import Data.Aeson.Lens hiding (key) import qualified Data.Aeson.Lens as AL import qualified Data.ByteString as BS-import qualified Data.ByteString.Lazy as BSL import Data.Maybe import Data.Monoid import Data.Text-import qualified Data.Text.Lazy as TL-import Data.Text.Lazy.Builder (toLazyText)+import Data.Text.Encoding import Data.Time import System.Locale import Text.Julius@@ -95,16 +92,20 @@ "template_id" .= t ] --- http://www.yesodweb.com/blog/2012/10/jqplot-widget-encodeText :: ToJSON a => a -> TL.Text-encodeText = toLazyText . encodeToTextBuilder . toJSON+-- encodeParams is similar to the exported ToJSON instance, except that it gives us the same order+-- output of keys each time. This is very useful for testing that signatures are correct.+encodeParams :: TransloaditParams -> Text+encodeParams (TransloaditParams a (Key k) (Template t) _ _) = mconcat [+ "{\"auth\":{\"expires\":\"", (formatExpiryTime a),+ "\",\"key\":\"", k, "\"},",+ "\"template_id\":\"", t, "\"}"] type Signature = Text sign :: TransloaditParams -> Signature sign cfg = (pack . show . hmacGetDigest) h where h :: HMAC SHA1- h = hmac (s cfg) ((BSL.toStrict . encode) cfg)+ h = hmac (s cfg) ((encodeUtf8 . encodeParams) cfg) s (transloaditSecret -> Secret s') = s' -- | Calculate the signature, and embed Javascript to attach Transloadit to the form.@@ -119,7 +120,7 @@ $(function() { $('##{rawJS formIdent}').transloadit({ wait : true,- params : JSON.parse('#{(rawJS . encodeText) t}')+ params : JSON.parse('#{(rawJS . encodeParams) t}') }); }); |]
yesod-transloadit.cabal view
@@ -1,5 +1,5 @@ name: yesod-transloadit-version: 0.1.0.0+version: 0.1.1.0 synopsis: Transloadit support for Yesod description: Drop in Transloadit capabilites for Yesod web apps license: MIT