From 2a131dc2eadfad2e7fab2ea312c014e93c510662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 8 Jun 2022 17:01:41 +0200 Subject: Clean up (calp server routes). --- module/calp/server/routes.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'module/calp') diff --git a/module/calp/server/routes.scm b/module/calp/server/routes.scm index 8c416585..0876aed4 100644 --- a/module/calp/server/routes.scm +++ b/module/calp/server/routes.scm @@ -114,6 +114,9 @@ (define-config static-dir "static" description: (_ "Where static files for the web server are located")) + +(define ical-namespace '(IC . "urn:ietf:params:xml:ns:icalendar-2.0")) + ;; TODO ensure encoding on all fields which take user provided data. @@ -205,14 +208,12 @@ (return (build-response code: 400) (string-append (_ "Both 'cal' and 'data' required") "\r\n"))) - ;; NOTE that this leaks which calendar exists, ;; but you can only query for existance. ;; also, the calendar view already show all calendars. (let* ((calendar-name (base64decode cal)) (calendar - (find (lambda (c) (string=? calendar-name (prop c 'NAME))) - (get-calendars global-event-object)))) + (get-calendar-by-name global-event-object calendar-name))) (unless calendar (return (build-response code: 400) @@ -238,12 +239,12 @@ ((@ (vcomponent formats xcal parse) sxcal->vcomponent) (catch 'parser-error (lambda () - (move-to-namespace - ;; TODO Multiple event components - (car ((sxpath '(// IC:vevent)) - (xml->sxml data namespaces: - '((IC . "urn:ietf:params:xml:ns:icalendar-2.0"))))) - #f)) + (-> data + (xml->sxml namespaces: (list ical-namespace)) + ((sxpath '(// IC:vevent))) + ;; TODO Multiple event components + car + (move-to-namespace #f))) (lambda (err port . args) (return (build-response code: 400) (format #f "~a ~{~a~}\r\n" -- cgit v1.2.3