on master help sign in
More PR5 fixes
commitad900cda513b5016e9a80a1253de4d1dbb9f41e1 authorJulian K. Arni <jkarni@gmail.com> dateFri 27 Mar 2015, 10:27 (12 years ago) parent467df6d
4 files changed+5−23
CHANGELOG.md+1 src/Servant/JQuery.hs+3−2 src/Servant/JQuery/Internal.hs+1−20 test/Servant/JQuerySpec.hs−1
CHANGELOG.md+1
@@ -2,6 +2,7 @@
22---
33* Extend `HeaderArg` to support more advanced HTTP header handling (https://github.com/haskell-servant/servant-jquery/pull/6)
44* Support content-type aware combinators (but require that endpoints support JSON)
5+* Add support for Matrix params (https://github.com/haskell-servant/servant-jquery/pull/11)
56
670.2.2
78-----
src/Servant/JQuery.hs+3−2
@@ -46,7 +46,7 @@ generateJS req = "\n" <>
4646 ++ body
4747 ++ map (toValidFunctionName . (<>) "header" . headerArgName) hs
4848 ++ ["onSuccess", "onError"]
49−
49+
5050 captures = map captureArg
5151 . filter isCapture
5252 $ req ^. reqUrl.path
@@ -76,7 +76,8 @@ generateJS req = "\n" <>
7676
7777 fname = req ^. funcName
7878 method = req ^. reqMethod
79− url = "'"
79+ url = if url' == "'" then "'/'" else url'
80+ url' = "'"
8081 ++ urlArgs
8182 ++ queryArgs
8283
src/Servant/JQuery/Internal.hs+1−20
@@ -31,25 +31,6 @@ data SegmentType = Static String -- ^ a static path segment. like "/foo"
3131 | Cap Arg -- ^ a capture. like "/:userid"
3232 deriving (Eq, Show)
3333
34−isCapture :: Segment -> Bool
35−isCapture (Cap _) = True
36−isCapture _ = False
37−
38−captureArg :: Segment -> Arg
39−captureArg (Cap s) = s
40−captureArg _ = error "captureArg called on non capture"
41−
42−jsSegments :: [Segment] -> String
43−jsSegments [] = "/'"
44−jsSegments [x] = "/" ++ segmentToStr x False
45−jsSegments (x:xs) = "/" ++ segmentToStr x True ++ jsSegments xs
46−
47−segmentToStr :: Segment -> Bool -> String
48−segmentToStr (Static s) notTheEnd =
49− if notTheEnd then s else s ++ "'"
50−segmentToStr (Cap s) notTheEnd =
51− "' + encodeURIComponent(" ++ s ++ if notTheEnd then ") + '" else ")"
52−
5334type Path = [Segment]
5435
5536data ArgType =
@@ -305,7 +286,7 @@ instance (KnownSymbol sym, HasJQ sublayout)
305286
306287 jqueryFor Proxy req =
307288 jqueryFor (Proxy :: Proxy sublayout) $
308− req & reqUrl.path._last.matrix <>~ [QueryArg str Normal]
289+ req & reqUrl.path._last.matrix <>~ [QueryArg strArg Normal]
309290
310291 where str = symbolVal (Proxy :: Proxy sym)
311292 strArg = str ++ "Value"
test/Servant/JQuerySpec.hs−1
@@ -13,7 +13,6 @@ import Language.ECMAScript3.Parser (parseFromString)
1313import Test.Hspec
1414
1515import Servant.API
16−import Servant.API.ContentTypes
1716import Servant.JQuery
1817import Servant.JQuerySpec.CustomHeaders
1918