diff options
Diffstat (limited to 'lisp/service/about-us-service.lisp')
| -rw-r--r-- | lisp/service/about-us-service.lisp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lisp/service/about-us-service.lisp b/lisp/service/about-us-service.lisp new file mode 100644 index 0000000..c479efe --- /dev/null +++ b/lisp/service/about-us-service.lisp @@ -0,0 +1,66 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +(declaim (optimize (speed 0) (safety 3) (debug 3))) + +(in-package :resume) + +(defclass about-us-service (rest-service) + ((category :initarg :category + :initform nil + :accessor category)) + (:documentation "")) + +(defun about-us-json (category) + (with-noauth (instance about-us-service) + (setf (category instance) category))) + +(defclass about-us/view-service (about-us-service) + ((content :initarg :content + :initform nil + :accessor content) + (admin-p :initarg :admin-p + :initform nil + :accessor admin-p) + (location :initform nil)) + (:documentation "")) + +(defun about-us-view-json (category) + (with-noauth (instance about-us/view-service) + (setf (category instance) category) + (with-valid-user (user "about-us-modify") + (setf (admin-p instance) nil) + (setf (admin-p instance) t)) + (with-resume-database + (let* ((general-pkg (make-instance 'general-pkg)) + (about-us (get-about-us general-pkg category))) + (when about-us + (setf (content instance) (content about-us))))))) + +(defclass about-us/modify-service (about-us/view-service auth-service) + ((form :initarg :form + :initform nil + :accessor form) + (admin-p :initform t) + (location-p :initform nil)) + (:documentation "")) + +(defun about-us-modify-json (category) + (with-auth (instance about-us/modify-service "about-us-modify") + (with-resume-database + (let* ((general-pkg (make-instance 'general-pkg)) + (about-us (get-about-us general-pkg category))) + (setf (form instance) (make-form "about-us-modify-form" + nil + nil + `((:label "Content" :name "txt-content" :field-type "textarea" :value ,(content about-us) :required "required") + (:label "Modify" :field-type "button" :onclick "on_about_us_modify_submit_clicked()")))))))) + +(defun about-us-modify-submit-json (category content) + (with-auth (instance about-us/modify-service "about-us-modify") + (with-resume-database + (let* ((general-pkg (make-instance 'general-pkg)) + (about-us (get-about-us general-pkg category))) + (when about-us + (setf (content about-us) content) + (update-record general-pkg about-us)))) + (setf (content instance) content) + (setf (message instance) "About Us text saved successfully."))) |
