Improve code readability
This commit is contained in:
parent
e6d7208e46
commit
7f33d8ff10
2 changed files with 33 additions and 27 deletions
|
@ -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"
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue