packages feed

rest-core 0.32 → 0.32.0.1

raw patch · 3 files changed

+17/−10 lines, 3 files

Files

CHANGELOG.md view
@@ -1,5 +1,8 @@ # Changelog +#### 0.32.0.1+* Fix bug in Chrome when serving files with commas in name.+ ## 0.32  * Add `addHeader` dictionary combinator, to extend instead of replace
rest-core.cabal view
@@ -1,5 +1,5 @@ name:                rest-core-version:             0.32+version:             0.32.0.1 description:         Rest API library. synopsis:            Rest API library. maintainer:          code@silk.co@@ -47,7 +47,7 @@     , fclabels == 2.0.*     , hxt >= 9.2 && < 9.4     , hxt-pickle-utils == 0.1.*-    , json-schema == 0.6.*+    , json-schema >= 0.6 && < 0.8     , mtl >= 2.0 && < 2.3     , multipart >= 0.1.1 && < 0.2     , random == 1.0.*@@ -55,7 +55,7 @@     , rest-types == 1.10.*     , safe >= 0.2 && < 0.4     , split >= 0.1 && < 0.3-    , text >= 0.11 && < 1.2+    , text >= 0.11 && < 1.3     , transformers >= 0.2 && < 0.5     , unordered-containers == 0.2.*     , uri-encode == 1.5.*
src/Rest/Driver/Perform.hs view
@@ -331,15 +331,18 @@         tryD (JsonO      : _ ) JsonFormat   = contentType JsonFormat   >> ok (encode v)         tryD (StringO    : _ ) StringFormat = contentType StringFormat >> ok (UTF8.fromString v)         tryD (MultipartO : _ ) _            = outputMultipart v-        tryD (FileO      : _ ) FileFormat   = do let ext = (reverse . takeWhile (/='.') . reverse) $ snd v-                                                 mime <- fromMaybe "application/octet-stream" <$> lookupMimeType (map toLower ext)-                                                 setHeader "Content-Type" mime-                                                 setHeader "Cache-Control" "max-age=604800"-                                                 setHeader "Content-Disposition" ("filename=" ++ snd v)-                                                 ok (fst v)+        tryD (FileO      : _ ) FileFormat   =+          do let ext = (reverse . takeWhile (/='.') . reverse) $ snd v+             mime <- fromMaybe "application/octet-stream" <$> lookupMimeType (map toLower ext)+             setHeader "Content-Type" mime+             setHeader "Cache-Control" "max-age=604800"+             setHeader "Content-Disposition" ("filename=\"" ++ escapeQuotes (snd v) ++ "\"")+             ok (fst v)         tryD []                t            = throwError (UnsupportedFormat (show t))         tryD (_          : xs) t            = tryD xs t     ok r = setResponseCode 200 >> return r+    escapeQuotes :: String -> String+    escapeQuotes = intercalate "\\\"" . splitOn "\""  outputMultipart :: Rest m => [BodyPart] -> m UTF8.ByteString outputMultipart vs =@@ -373,7 +376,8 @@         [ ["image"]       , xs    ] -> xs >>= img         _                           -> [] -    trim = reverse . dropWhile isSpace . reverse . dropWhile isSpace+    trim = f . f+      where f = reverse . dropWhile isSpace      txt "*"     = [XmlFormat, JsonFormat, StringFormat]     txt "json"  = [JsonFormat]