Improve code readability

This commit is contained in:
Marcus Kammer 2024-08-09 22:26:15 +02:00
parent e6d7208e46
commit 7f33d8ff10
Signed by: marcuskammer
GPG key ID: C374817BE285268F
2 changed files with 33 additions and 27 deletions

View file

@ -2,7 +2,7 @@
(defsystem "dev.metalisp.survey" (defsystem "dev.metalisp.survey"
:description "A simple survey" :description "A simple survey"
:version "0.3.7" :version "0.3.8"
:author "Marcus Kammer <marcus.kammer@metalisp.dev>" :author "Marcus Kammer <marcus.kammer@metalisp.dev>"
:source-control "git@git.sr.ht:~marcuskammer/dev.metalisp.survey" :source-control "git@git.sr.ht:~marcuskammer/dev.metalisp.survey"
:licence "MIT" :licence "MIT"

View file

@ -99,35 +99,41 @@ available in its environment for full functionality."
(setf *html-lang* (questionnaire-lang q)) (setf *html-lang* (questionnaire-lang q))
(view q)) (view q))
(defun process-questionnaire-post (request survey q) (defun questionnaire-write-to-file (data-file)
(ml-survey/fileops:write-to-file data-file
(list :type (if (likert-p (questionnaire-name q))
"likert"
"mixed")
:name (questionnaire-name q)
:timestamp (ml-survey/app:today+now)
:post-data post-params)))
(defun process-questionnaire-post (post-params survey q)
(declare (type questionnaire q)) (declare (type questionnaire q))
(let* ((post-params (hunchentoot:post-parameters* request)) (let* ((survey-id (ml-survey/survey:survey-id survey))
(survey-id (ml-survey/survey:survey-id survey))
(questionnaire-id (ml-survey/app:generate-uuid)) (questionnaire-id (ml-survey/app:generate-uuid))
(questionnaire-data-file (ml-survey/fileops:ensure-data-file-exist survey-id (questionnaire-data-file (ml-survey/fileops:ensure-data-file-exist survey-id questionnaire-id)))
questionnaire-id))) (questionnaire-write-to-file questionnaire-data-file)
(ml-survey/fileops:write-to-file questionnaire-data-file
(list :type (if (likert-p (questionnaire-name q))
"likert"
"mixed")
:name (questionnaire-name q)
:timestamp (ml-survey/app:today+now)
:post-data post-params))
(view-submit))) (view-submit)))
(define-easy-handler (questionnaire-handler :uri #'questionnaire-uri) nil (defun extract-uri-param (param)
(let ((s (make-instance 'ml-survey/survey:survey (ml-survey/app:extract-from (hunchentoot:request-uri*) param))
:id (ml-survey/app:extract-from (hunchentoot:request-uri*) :survey-id)))
(questionnaire (make-questionnaire :lang (defun create-survey (survey-id)
(ml-survey/app:extract-from (hunchentoot:request-uri*) (make-instance 'ml-survey/survey:survey :id survey-id))
:lang)
:name
(ml-survey/app:extract-from (hunchentoot:request-uri*)
:questionnaire))))
(ecase (hunchentoot:request-method*) (defun create-questionnaire (lang name)
(:get (process-questionnaire-get questionnaire)) (make-questionnaire :lang lang :name name))
(:post (process-questionnaire-post hunchentoot:*request* s questionnaire)))))
(defun process-request (survey questionnaire)
(ecase (hunchentoot:request-method*)
(:get (process-questionnaire-get questionnaire))
(:post (process-questionnaire-post (hunchentoot:post-parameters*) survey questionnaire))))
(define-easy-handler (questionnaire-handler :uri #'questionnaire-uri) ()
(let* ((survey-id (extract-uri-param :survey-id))
(lang (extract-uri-param :lang))
(questionnaire-name (extract-uri-param :questionnaire))
(survey (create-survey survey-id))
(questionnaire (create-questionnaire lang questionnaire-name)))
(process-request survey questionnaire)))