From 90b7ef271e06dcca56745bf0bc9012eb24887bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 27 Aug 2020 20:43:35 +0200 Subject: Add /search/text endpoint. --- module/calp/server/routes.scm | 16 ++++++++++++++++ module/calp/util.scm | 3 +++ 2 files changed, 19 insertions(+) diff --git a/module/calp/server/routes.scm b/module/calp/server/routes.scm index f647b998..865c11c7 100644 --- a/module/calp/server/routes.scm +++ b/module/calp/server/routes.scm @@ -11,6 +11,7 @@ :use-module ((web response) :select (build-response)) :use-module ((web uri) :select (build-relative-ref)) + :use-module ((web uri-query) :select (encode-query-parameters)) :use-module (sxml simple) :use-module (sxml xpath) @@ -345,6 +346,21 @@ (return (build-response code: 404) (format #f "No component with UID=~a found." uid)))) + (GET "/search/text" (q) + (return (build-response + code: 302 + headers: + `((location + . ,(build-relative-ref + path: "/search/" + query: + (encode-query-parameters + `((q . (regexp-exec + (make-regexp ,(->quoted-string q) + regexp/icase) + (prop event 'SUMMARY))))) + )))))) + (GET "/search" (q p) (define search-term (and=> q prepare-string)) diff --git a/module/calp/util.scm b/module/calp/util.scm index 25c753dc..7c176c50 100644 --- a/module/calp/util.scm +++ b/module/calp/util.scm @@ -533,6 +533,9 @@ (define-public ->string ->str) +(define-public (->quoted-string any) + (with-output-to-string (lambda () (write any)))) + (define-public (path-append . strings) (fold (lambda (s done) (string-append -- cgit v1.2.3