diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-24 18:53:11 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-24 18:53:11 +0200 |
commit | ec2d143ffd4bc1f81f1cd2caa06cffb3e52105a9 (patch) | |
tree | 47b3144c970a638b024b22a3ef7d8b0bb3be93f9 /module/web/query.scm | |
parent | Split webdav documentation into multiple files. (diff) | |
download | calp-ec2d143ffd4bc1f81f1cd2caa06cffb3e52105a9.tar.gz calp-ec2d143ffd4bc1f81f1cd2caa06cffb3e52105a9.tar.xz |
Merge (web uri-query) into (web query).
Diffstat (limited to '')
-rw-r--r-- | module/web/query.scm | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/module/web/query.scm b/module/web/query.scm index 4a1abf66..3645797f 100644 --- a/module/web/query.scm +++ b/module/web/query.scm @@ -3,7 +3,8 @@ :use-module (srfi srfi-1) :use-module (srfi srfi-71) :use-module (web uri) - :export (parse-query)) + :export (parse-query + encode-query-parameters)) (define* (parse-query query-string optional: (encoding "UTF-8")) (unless (or (not query-string) (string-null? query-string)) @@ -19,3 +20,15 @@ (values v v)))))) (cons* (-> key string->symbol symbol->keyword) val list))) '() (string-split query-string #\&)))) + + +;; TODO why this format for values? +;; TODO why aren't we encoding the keys? +(define (encode-query-parameters parameters) + (string-join + (map (lambda (p) + (format #f "~a=~a" + (car p) + (uri-encode (with-output-to-string (lambda () (write (cdr p))))))) + parameters) + "&")) |