Define more survey functions
This commit is contained in:
parent
43e32338c7
commit
2a314583d6
1 changed files with 14 additions and 5 deletions
|
@ -12,14 +12,23 @@
|
||||||
(and (= (length parts) 2)
|
(and (= (length parts) 2)
|
||||||
(string= (first parts) "survey")
|
(string= (first parts) "survey")
|
||||||
(every #'digit-char-p (second parts))
|
(every #'digit-char-p (second parts))
|
||||||
(valid-survey-id-p (parse-integer (second parts))))))
|
(survey-id-p (parse-integer (second parts))))))
|
||||||
|
|
||||||
(defun survey-uri (request)
|
(defun survey-uri (request)
|
||||||
(let ((uri (request-uri request)))
|
(let ((uri (request-uri request)))
|
||||||
(survey-uri-p uri)))
|
(survey-uri-p uri)))
|
||||||
|
|
||||||
|
(defun survey-id (uri)
|
||||||
|
(check-type uri string)
|
||||||
|
(let ((id (second (split-uri uri))))
|
||||||
|
(unless (survey-id-p (parse-integer id))
|
||||||
|
(error "Wrong survey id"))
|
||||||
|
id))
|
||||||
|
|
||||||
|
(defun survey-properties (id)
|
||||||
|
(check-type id integer)
|
||||||
|
(first (rest (assoc id (load-response (make-surveys-db-path))))))
|
||||||
|
|
||||||
(define-easy-handler (survey :uri #'survey-uri) ()
|
(define-easy-handler (survey :uri #'survey-uri) ()
|
||||||
(let* ((id (second (split-uri (request-uri*))))
|
(let ((id (survey-id (request-uri*))))
|
||||||
(survey (assoc (parse-integer id)
|
(ml-survey/views:survey id (survey-properties (parse-integer id)))))
|
||||||
(load-response (make-surveys-db-path)))))
|
|
||||||
(ml-survey/views:survey survey)))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue