Skip to content

Commit d2664cc

Browse files
committed
[fix] 302 redirects
Add new function `app:redirect-to#1 to replace response:redirect-to#1 until eXist-db/exist#4249 is fixed.
1 parent caeb5a5 commit d2664cc

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

modules/app.xqm

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ declare function app:view-package($node as node(), $model as map(*), $mode as xs
211211
()
212212
)
213213
return
214-
response:redirect-to(xs:anyURI($info-url))
214+
app:redirect-to($info-url)
215215
(: view current package info :)
216216
else
217217
let $packages := $package-group//package
@@ -441,3 +441,12 @@ declare function app:requires-to-english($requires as element()) {
441441
else
442442
" version " || $config:default-exist-version
443443
};
444+
445+
(:~
446+
: helper function to work around a bug in response:redirect-to#1
447+
: see https://github.com/eXist-db/exist/issues/4249
448+
:)
449+
declare function app:redirect-to ($location as xs:string) {
450+
response:set-status-code(302),
451+
response:set-header("Location", $location)
452+
};

modules/find.xq

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,10 @@ return
4343
$newest-compatible-package/version ! attribute version {.},
4444
$newest-compatible-package/@path
4545
}
46-
else if ($zip) then (
47-
response:set-status-code(302),
48-
response:set-header("Location", $abs-public || $xar-filename || ".zip")
49-
)
50-
else (
51-
response:set-status-code(302),
52-
response:set-header("Location", $abs-public || $xar-filename)
53-
)
46+
else if ($zip) then
47+
app:redirect-to($abs-public || $xar-filename || ".zip")
48+
else
49+
app:redirect-to($abs-public || $xar-filename)
5450
else
5551
(
5652
response:set-status-code(404),

0 commit comments

Comments
 (0)