summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorckonstanski <kostcarl@isu.edu>2026-07-28 16:53:23 -0600
committerckonstanski <kostcarl@isu.edu>2026-07-28 16:53:23 -0600
commit099c7331a5c5a3e1948c8c4f97d76a20de97bb39 (patch)
tree8cda5abf591b60b065b8c939703cf915de007aa5
parent3b031c4d68cf2b7718638166080a988ed560f587 (diff)
stuff
-rw-r--r--lisp/service/menu-service.lisp11
-rw-r--r--lisp/service/resume-service.lisp666
-rw-r--r--lisp/webapps/resume/clojurescript/resume/src/core.cljs33
-rw-r--r--lisp/webapps/resume/site.lisp112
4 files changed, 118 insertions, 704 deletions
diff --git a/lisp/service/menu-service.lisp b/lisp/service/menu-service.lisp
index a7b67e3..608f23a 100644
--- a/lisp/service/menu-service.lisp
+++ b/lisp/service/menu-service.lisp
@@ -4,11 +4,12 @@
(in-package :resume)
(defparameter *menu-config* '((:id "a_menu_home" :label "Home" :handler "/home" :permissions "_Public")
- (:id "a_menu_resumes" :label "Resumes" :handler "/resume" :permissions "resume-view")
- (:id "a_menu_resumes_contactinfo" :label "Contact Info" :handler "/resume/contactinfo" :permissions "resume-view")
- (:id "a_menu_resumes_education" :label "Education" :handler "/resume/education" :permissions "resume-view")
- (:id "a_menu_resumes_language" :label "Language" :handler "/resume/language" :permissions "resume-view")
- (:id "a_menu_resumes_skills" :label "Skills" :handler "/resume/skills" :permissions "resume-view")
+ (:id "a_menu_resume" :label "Resumes" :handler "/resume" :permissions "resume-view")
+ (:id "a_menu_resume_contactinfo" :label "Contact Info" :handler "/resume/contactinfo" :permissions "resume-view")
+ (:id "a_menu_resume_education" :label "Education" :handler "/resume/education" :permissions "resume-view")
+ (:id "a_menu_resume_language" :label "Language" :handler "/resume/language" :permissions "resume-view")
+ (:id "a_menu_resume_skill" :label "Skills" :handler "/resume/skill" :permissions "resume-view")
+ (:id "a_menu_resume_job" :label "Jobs" :handler "/resume/job" :permissions "resume-view")
(:id "a_menu_contact_us" :label "Contact Me" :handler "/contact-us" :permissions "_Public")
(:id "a_menu_messages" :label "Messages" :handler "/messages" :permissions "messages-view")
(:id "a_menu_users" :label "Users" :handler "/users" :permissions "users-view")))
diff --git a/lisp/service/resume-service.lisp b/lisp/service/resume-service.lisp
index 73fa421..59643c5 100644
--- a/lisp/service/resume-service.lisp
+++ b/lisp/service/resume-service.lisp
@@ -27,6 +27,19 @@
:accessor title))
(:documentation ""))
+ (defclass resume-component/view-service (resume-service)
+ ((components :initarg components
+ :initform nil
+ :accessor components)
+ (location-p :initform nil))
+ (:documentation ""))
+
+ (defclass resume-component/modify-service (resume-component/view-service)
+ ((form :initarg :form
+ :initform nil
+ :accessor form))
+ (:documentation ""))
+
;; resume
(defun resume-json ()
@@ -134,572 +147,11 @@
(progn
(delete-resume resume-pkg resume)
(setf (session-value :message) (format nil "Resume \"~a\" deleted successfully." (name resume))))
- (setf (session-value :errormsg) "Error: could not delete resume: not found."))))))
-
- ;; ;; contactinfo
-
- ;; (defun contactinfo-json ()
- ;; (with-auth (instance resume-service "resume-view")
- ;; (setf (title instance) "Contact Information")))
-
- ;; (defclass contactinfo/view-service (resume-service contactinfo)
- ;; ((contactinfos :initarg :contactinfos
- ;; :initform nil
- ;; :accessor contactinfos)
- ;; (location-p :initform nil))
- ;; (:documentation ""))
-
- ;; (defun contactinfo-view-json ()
- ;; (with-auth (instance contactinfo/view-service "resume-view")
- ;; (with-resume-database
- ;; (let ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user)))
- ;; (setf (contactinfos instance) (get-records resume-pkg (make-instance 'contactinfo-v :user_id (id user)) "state_name asc, city asc, address asc, email asc, phone asc, visastatus asc"))))
- ;; (sanitize-rest-json instance)
- ;; (loop for contactinfo-v in (contactinfos instance)
- ;; do (sanitize-json contactinfo-v))))
-
- ;; (defclass contactinfo/add-service (contactinfo/view-service)
- ;; ((form :initarg :form
- ;; :initform nil
- ;; :accessor form))
- ;; (:documentation ""))
-
- ;; (defun contactinfo-add-json ()
- ;; (with-auth (instance contactinfo/add-service "resume-modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (states (get-records resume-pkg (make-instance 'states) "abbr asc"))
- ;; (visastatuses (get-records resume-pkg (make-instance 'visastatus) "visastatus asc")))
- ;; (setf (title instance) "Contact Info - Add")
- ;; (setf (form instance) (make-form "contactinfo-add-form"
- ;; nil
- ;; t
- ;; `((:name "address" :label "Address" :field-type "text" :required "required")
- ;; (:name "city" :label "City" :field-type "text" :required "required")
- ;; (:name "state_id" :label "State" :field-type "select" :options ,(state-options states) :required "required")
- ;; (:name "phone" :label "Phone" :field-type "text" :required "required")
- ;; (:name "email" :label "Email" :field-type "text" :required "required")
- ;; (:name "visastatus_id" :label "VISA Status" :field-type "select" :options ,(visastatus-options visastatuses) :required "required")
- ;; (:label "Add Contact Info" :field-type "button" :onclick "on_contactinfo_add_submit_clicked()"))))))))
-
- ;; (defun contactinfo-add-submit-json (address city state_id phone email visastatus_id)
- ;; (declare (special address city state_id phone email visastatus_id))
- ;; (with-auth (instance contactinfo/add-service "resume-modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (contactinfo (make-instance 'contactinfo :user_id (id user))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'contactinfo-add-submit-json))
- ;; do (setf (slot-value contactinfo param) (symbol-value param)))
- ;; (insert-contactinfo resume-pkg contactinfo)
- ;; (setf (session-value :message) (format nil "Contact Info \"~a, ~a\" created successfully." address city)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error creating Contact Info \"~a, ~a\". ~a" address city e)))))))
-
- ;; (defclass contactinfo/modify-service (contactinfo/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun contactinfo-modify-json (id)
- ;; (with-auth (instance contactinfo/modify-service "resume-modify")
- ;; (setf (title instance) "Contact Info - Modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (states (get-records resume-pkg (make-instance 'states) "abbr asc"))
- ;; (visastatuses (get-records resume-pkg (make-instance 'visastatus) "status asc"))
- ;; (contactinfo-v (get-record resume-pkg (make-instance 'contactinfo-v :id id :user_id (id user)))))
- ;; (if contactinfo-v
- ;; (setf (form instance) (make-form "contactinfo-modify-form"
- ;; nil
- ;; t
- ;; `((:name "id" :field-type "hidden" :value ,(id contactinfo-v) :required "required")
- ;; (:name "address" :label "Address" :field-type "text" :value ,(address contactinfo-v) :required "required")
- ;; (:name "city" :label "City" :field-type "text" :value ,(city contactinfo-v) :required "required")
- ;; (:name "state_id" :label "State" :field-type "select" :value ,(state_id contactinfo-v) :options ,(state-options states) :required "required")
- ;; (:name "phone" :label "Phone" :field-type "text" :value ,(phone contactinfo-v) :required "required")
- ;; (:name "email" :label "Email" :field-type "text" :value ,(email contactinfo-v) :required "required")
- ;; (:name "visastatus_id" :label "VISA Status" :field-type "select" :value ,(visastatus_id contactinfo-v) :options ,(visastatus-options visastatuses) :required "required")
- ;; (:label "Modify Contact Info" :field-type "button" :onclick "on_contactinfo_modify_submit_clicked()"))))
- ;; (setf (session-value :errormsg) "Error: could not modify Contact Info. Not found."))))))
-
- ;; (defun contactinfo-modify-submit-json (id address city state_id phone email visastatus_id)
- ;; (declare (special id address city state_id phone email visastatus_id))
- ;; (with-auth (instance contactinfo/modify-service "resume-modify")
- ;; (setf (title instance) "Contact Info - Modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (contactinfo (get-record resume-pkg (make-instance 'contactinfo :id id :user_id (id user)))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'contactinfo-modify-submit-json))
- ;; do (setf (slot-value contactinfo param) (symbol-value param)))
- ;; (update-record resume-pkg contactinfo)
- ;; (setf (session-value :message) (format nil "Contact Info \"~a, ~a\" modified successfully." address city)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error modifying Contact Info \"~a, ~a\". ~a" address city e)))))))
-
- ;; (defclass contactinfo/delete-service (contactinfo/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun contactinfo-delete-json (id)
- ;; (with-auth (instance contactinfo/delete-service "resume-modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (contactinfo (get-record resume-pkg (make-instance 'contactinfo :id id :user_id (id user)))))
- ;; (if contactinfo
- ;; (progn
- ;; (delete-record resume-pkg contactinfo)
- ;; (setf (session-value :message) (format nil "Contact Info \"~a, ~a\" deleted successfully." (address contactinfo) (city contactinfo))))
- ;; (setf (session-value :errormsg) "Error: could not delete Contact Info: not found."))))))
-
- ;; ;; education
-
- ;; (defun education-json ()
- ;; (with-auth (instance resume-service "resume-view")
- ;; (setf (title instance) "Education")))
-
- ;; (defclass education/view-service (resume-service education)
- ;; ((educations :initarg :educations
- ;; :initform nil
- ;; :accessor educations)
- ;; (location-p :initform nil))
- ;; (:documentation ""))
-
- ;; (defun education-view-json ()
- ;; (with-auth (instance education/view-service "resume-view")
- ;; (with-resume-database
- ;; (let ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user)))
- ;; (setf (educations instance) (get-records resume-pkg (make-instance 'education :user_id (id user))))))
- ;; (sanitize-rest-json instance)
- ;; (loop for education in (educations instance)
- ;; do (sanitize-json education))))
-
- ;; (defclass education/add-service (education/view-service)
- ;; ((form :initarg :form
- ;; :initform nil
- ;; :accessor form))
- ;; (:documentation ""))
-
- ;; (defun education-add-json ()
- ;; (with-auth (instance education/add-service "resume-modify")
- ;; (setf (form instance) (make-form "education-add-form"
- ;; nil
- ;; t
- ;; `((:name "school" :label "School" :field-type "text" :required "required")
- ;; (:name "major" :label "Major" :field-type "text" :required "required")
- ;; (:name "minor" :label "Minor" :field-type "text")
- ;; (:name "degree" :label "Degree" :field-type "text" :required "required")
- ;; (:name "progress" :label "Progress" :field-type "text" :required "required")
- ;; (:name "start_date" :label "Start Date" :field-type "text" :required "required")
- ;; (:name "end_date" :label "End Date" :field-type "text" :required "required")
- ;; (:label "Add Education" :field-type "button" :onclick "on_education_add_submit_clicked()"))))))
-
- ;; (defun education-add-submit-json (school major minor degree progress start_date end_date)
- ;; (declare (special school major minor degree progress start_date end_date))
- ;; (with-auth (instance education/add-service "resume-modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (education (make-instance 'education :user_id (id user))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'education-add-submit-json))
- ;; do (setf (slot-value education param) (symbol-value param)))
- ;; (insert-education resume-pkg education)
- ;; (setf (session-value :message) (format nil "Education \"~a, ~a\" created successfully." school major)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error creating Education \"~a, ~a\". ~a" school major e)))))))
-
- ;; (defclass education/modify-service (education/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun education-modify-json (id)
- ;; (with-auth (instance education/modify-service "resume-modify")
- ;; (setf (title instance) "Education - Modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (education (get-record resume-pkg (make-instance 'education :id id :user_id (id user)))))
- ;; (if education
- ;; (setf (form instance) (make-form "education-modify-form"
- ;; nil
- ;; t
- ;; `((:name "id" :field-type "hidden" :value ,(id education) :required "required")
- ;; (:name "school" :label "School" :field-type "text" :value ,(school education) :required "required")
- ;; (:name "major" :label "Major" :field-type "text" :value ,(major education) :required "required")
- ;; (:name "minor" :label "Minor" :field-type "text" :value ,(minor education))
- ;; (:name "degree" :label "Degree" :field-type "text" :value ,(degree education) :required "required")
- ;; (:name "progress" :label "Progress" :field-type "text" :value ,(progress education) :required "required")
- ;; (:name "start_date" :label "Start Date" :field-type "text" :value ,(start_date education) :required "required")
- ;; (:name "end_date" :label "End Date" :field-type "text" :value ,(end_date education) :required "required")
- ;; (:label "Modify Education" :field-type "button" :onclick "on_education_modify_submit_clicked()"))))
- ;; (setf (session-value :errormsg) "Error: could not modify Education. Not found."))))))
-
- ;; (defun education-modify-submit-json (id school major minor degree progress start_date end_date)
- ;; (declare (special id school major minor degree progress start_date end_date))
- ;; (with-auth (instance education/modify-service "resume-modify")
- ;; (setf (title instance) "Education - Modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (education (get-record resume-pkg (make-instance 'education :id id :user_id (id user)))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'education-modify-submit-json))
- ;; do (setf (slot-value education param) (symbol-value param)))
- ;; (update-record resume-pkg education)
- ;; (setf (session-value :message) (format nil "Education \"~a, ~a\" modified successfully." school major)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error modifying Education \"~a, ~a\". ~a" school major e)))))))
-
- ;; (defclass education/delete-service (education/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun education-delete-json (id)
- ;; (with-auth (instance education/delete-service "resume-modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (education (get-record resume-pkg (make-instance 'education :id id :user_id (id user)))))
- ;; (if education
- ;; (progn
- ;; (delete-record resume-pkg education)
- ;; (setf (session-value :message) (format nil "Education \"~a, ~a\" deleted successfully." (school education) (major education))))
- ;; (setf (session-value :errormsg) "Error: could not delete Education: not found."))))))
-
- ;; ;; language
-
- ;; (defun language-json ()
- ;; (with-auth (instance resume-service "resume-view")
- ;; (setf (title instance) "Languages")))
-
- ;; (defclass language/view-service (resume-service language)
- ;; ((languages :initarg :languages
- ;; :initform nil
- ;; :accessor languages)
- ;; (location-p :initform nil))
- ;; (:documentation ""))
-
- ;; (defun language-view-json ()
- ;; (with-auth (instance language/view-service "resume-view")
- ;; (with-resume-database
- ;; (let ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user)))
- ;; (setf (languages instance) (get-records resume-pkg (make-instance 'language :user_id (id user))))))
- ;; (sanitize-rest-json instance)
- ;; (loop for language in (languages instance)
- ;; do (sanitize-json language))))
-
- ;; (defclass language/add-service (language/view-service)
- ;; ((form :initarg :form
- ;; :initform nil
- ;; :accessor form))
- ;; (:documentation ""))
+ (setf (session-value :errormsg) "Error: could not delete resume: not found.")))))))
- ;; (defun language-add-json ()
- ;; (with-auth (instance language/add-service "resume-modify")
- ;; (setf (title instance) "Language - Add")
- ;; (setf (form instance) (make-form "language-add-form"
- ;; nil
- ;; t
- ;; `((:name "name" :label "Name" :field-type "text" :required "required")
- ;; (:name "understanding_listening" :label "Understanding Listening" :field-type "select" :options ,(language-options) :required "required")
- ;; (:name "understanding_reading" :label "Understanding Reading" :field-type "select" :options ,(language-options) :required "required")
- ;; (:name "speaking_interaction" :label "Speaking Interaction" :field-type "select" :options ,(language-options) :required "required")
- ;; (:name "speaking_production" :label "Speaking Production" :field-type "select" :options ,(language-options) :required "required")
- ;; (:name "writing" :label "Writing" :field-type "select" :options ,(language-options) :required "required")
- ;; (:label "Add Language" :field-type "button" :onclick "on_language_add_submit_clicked()"))))))
+;; macros
- ;; (defun language-add-submit-json (name understanding_listening understanding_reading speaking_interaction speaking_production writing)
- ;; (declare (special name understanding_listening understanding_reading speaking_interaction speaking_production writing))
- ;; (with-auth (instance language/add-service "resume-modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (language (make-instance 'language :user_id (id user))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'language-add-submit-json))
- ;; do (setf (slot-value language param) (symbol-value param)))
- ;; (insert-language resume-pkg language)
- ;; (setf (session-value :message) (format nil "Language \"~a\" created successfully." name)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error creating Language \"~a\". ~a" name e)))))))
-
- ;; (defclass language/modify-service (language/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun language-modify-json (id)
- ;; (with-auth (instance language/modify-service "resume-modify")
- ;; (setf (title instance) "Language - Modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (language (get-record resume-pkg (make-instance 'language :id id :user_id (id user)))))
- ;; (if language
- ;; (setf (form instance) (make-form "language-modify-form"
- ;; nil
- ;; t
- ;; `((:name "id" :field-type "hidden" :value ,(id language) :required "required")
- ;; (:name "name" :label "Name" :field-type "text" :value ,(name language) :required "required")
- ;; (:name "understanding_listening" :label "Understanding Listening" :field-type "select" :options ,(language-options) :value ,(understanding_listening language) :required "required")
- ;; (:name "understanding_reading" :label "Understanding Reading" :field-type "select" :options ,(language-options) :value ,(understanding_reading language) :required "required")
- ;; (:name "speaking_interaction" :label "Speaking Interaction" :field-type "select" :options ,(language-options) :value ,(speaking_interaction language) :required "required")
- ;; (:name "speaking_production" :label "Speaking Production" :field-type "select" :options ,(language-options) :value ,(speaking_production language) :required "required")
- ;; (:name "writing" :label "Writing" :field-type "text" :value ,(writing language) :required "required")
-
- ;; (:label "Modify Language" :field-type "button" :onclick "on_language_modify_submit_clicked()"))))
- ;; (setf (session-value :errormsg) "Error: could not modify Language. Not found."))))))
-
- ;; (defun language-modify-submit-json (id name understanding_listening understanding_reading speaking_interaction speaking_production writing)
- ;; (declare (special id name understanding_listening understanding_reading speaking_interaction speaking_production writing))
- ;; (with-auth (instance language/modify-service "resume-modify")
- ;; (setf (title instance) "Language - Modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (language (get-record resume-pkg (make-instance 'language :id id :user_id (id user)))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'language-modify-submit-json))
- ;; do (setf (slot-value language param) (symbol-value param)))
- ;; (update-record resume-pkg language)
- ;; (setf (session-value :message) (format nil "Language \"~a\" modified successfully." name)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error modifying Language \"~a\". ~a" name e)))))))
-
- ;; (defclass language/delete-service (language/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun language-delete-json (id)
- ;; (with-auth (instance language/delete-service "resume-modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (language (get-record resume-pkg (make-instance 'language :id id :user_id (id user)))))
- ;; (if language
- ;; (progn
- ;; (delete-record resume-pkg language)
- ;; (setf (session-value :message) (format nil "Language \"~a\" deleted successfully." (name language))))
- ;; (setf (session-value :errormsg) "Error: could not delete Language: not found."))))))
-
- ;; ;; skill
-
- ;; (defun skill-json ()
- ;; (with-auth (instance resume-service "resume-view")
- ;; (setf (title instance) "Skills")))
-
- ;; (defclass skill/view-service (resume-service skill)
- ;; ((skills :initarg :skills
- ;; :initform nil
- ;; :accessor skills)
- ;; (location-p :initform nil))
- ;; (:documentation ""))
-
- ;; (defun skill-view-json ()
- ;; (with-auth (instance skill/view-service "resume-view")
- ;; (with-resume-database
- ;; (let ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user)))
- ;; (setf (skills instance) (get-records resume-pkg (make-instance 'skill :user_id (id user))))))
- ;; (sanitize-rest-json instance)
- ;; (loop for skill in (skills instance)
- ;; do (sanitize-json skill))))
-
- ;; (defclass skill/add-service (skill/view-service)
- ;; ((form :initarg :form
- ;; :initform nil
- ;; :accessor form))
- ;; (:documentation ""))
-
- ;; (defun skill-add-json ()
- ;; (with-auth (instance skill/add-service "resume-modify")
- ;; (setf (title instance) "Skill - Add")
- ;; (setf (form instance) (make-form "skill-add-form"
- ;; nil
- ;; t
- ;; `((:name "skill" :label "Skill" :field-type "text" :required "required")
- ;; (:label "Add Skill" :field-type "button" :onclick "on_skill_add_submit_clicked()"))))))
-
- ;; (defun skill-add-submit-json (skill)
- ;; (declare (special skill))
- ;; (with-auth (instance skill/add-service "resume-modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (skill (make-instance 'skill :user_id (id user))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'skill-add-submit-json))
- ;; do (setf (slot-value skill param) (symbol-value param)))
- ;; (insert-skill resume-pkg skill)
- ;; (setf (session-value :message) (format nil "Skill \"~a\" created successfully." skill)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error creating Skill \"~a\". ~a" skill e)))))))
-
- ;; (defclass skill/modify-service (skill/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun skill-modify-json (id)
- ;; (with-auth (instance skill/modify-service "resume-modify")
- ;; (setf (title instance) "Skill - Modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (skill (get-record resume-pkg (make-instance 'skill :id id :user_id (id user)))))
- ;; (if skill
- ;; (setf (form instance) (make-form "skill-modify-form"
- ;; nil
- ;; t
- ;; `((:name "id" :field-type "hidden" :value ,(id skill) :required "required")
- ;; (:name "skill" :label "Skill" :field-type "text" :value ,(skill skill) :required "required")
- ;; (:label "Modify Skill" :field-type "button" :onclick "on_skill_modify_submit_clicked()"))))
- ;; (setf (session-value :errormsg) "Error: could not modify Skill. Not found."))))))
-
- ;; (defun skill-modify-submit-json (id skill)
- ;; (declare (special id skill))
- ;; (with-auth (instance skill/modify-service "resume-modify")
- ;; (setf (title instance) "Skill - Modify")
- ;; (with-resume-database
- ;; (handler-case
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (skill (get-record resume-pkg (make-instance 'skill :id id :user_id (id user)))))
- ;; (loop for param in (remove-if (lambda (x)
- ;; (intersection `(,x) '(id)))
- ;; (sb-introspect:function-lambda-list #'skill-modify-submit-json))
- ;; do (setf (slot-value skill param) (symbol-value param)))
- ;; (update-record resume-pkg skill)
- ;; (setf (session-value :message) (format nil "Skill \"~a\" modified successfully." skill)))
- ;; (error (e)
- ;; (setf (session-value :errormsg) (format nil "Error modifying Skill \"~a\". ~a" skill e)))))))
-
- ;; (defclass skill/delete-service (skill/add-service)
- ;; ()
- ;; (:documentation ""))
-
- ;; (defun skill-delete-json (id)
- ;; (with-auth (instance skill/delete-service "resume-modify")
- ;; (with-resume-database
- ;; (let* ((resume-pkg (make-instance 'resume-pkg))
- ;; (user (get-user))
- ;; (skill (get-record resume-pkg (make-instance 'skill :id id :user_id (id user)))))
- ;; (if skill
- ;; (progn
- ;; (delete-record resume-pkg skill)
- ;; (setf (session-value :message) (format nil "Skill \"~a\" deleted successfully." (skill skill))))
- ;; (setf (session-value :errormsg) "Error: could not delete Skill: not found."))))))
-
- ;; macros
-
- (defclass resume-component/view-service (resume-service)
- ((components :initarg components
- :initform nil
- :accessor components)
- (location-p :initform nil))
- (:documentation ""))
-
- (defclass resume-component/modify-service (resume-component/view-service)
- ((form :initarg :form
- :initform nil
- :accessor form))
- (:documentation "")))
-
-;; (defmacro ,func-add-s ()
-;; `(with-auth (instance ,,class-modify-s "resume-modify")
-;; (setf (title instance) (format nil "~a - Add" ,,component))
-;; (setf (form instance) (make-form ,,form-add
-;; nil
-;; t
-;; `(() ;;,,@input-add-fields
-;; (:label ,,,(format nil "Add ~a" component) :field-type "button" :onclick ,,(format nil "on_~a_add_submit_clicked()" component-lcase)))))))
-
-;; (defmacro ,func-add-submit-s (,@arg-names)
-;; `(progn
-;; (declare (special ,,@arg-names))
-;; (with-auth (instance ,,class-modify-s "resume-modify")
-;; (with-resume-database
-;; (handler-case
-;; (let* ((resume-pkg (make-instance 'resume-pkg))
-;; (user (get-user))
-;; (,,component-s (make-instance ',,component-s :user_id (id user))))
-;; (loop for param in (remove-if (lambda (x)
-;; (intersection `(,x) '(id)))
-;; (sb-introspect:function-lambda-list #',func-add-submit-s))
-;; do (setf (slot-value ,,component-s param) (symbol-value param)))
-;; (insert-record resume-pkg ,,component-s)
-;; (setf (session-value :message) (format nil "~a created successfully." ,,component)))
-;; (error (e)
-;; (setf (session-value :errormsg) (format nil "Error creating ~a. ~a" ,,component e))))))))
-
-;; (defmacro ,func-modify-s (id)
-;; `(with-auth (instance ,,class-modify-s "resume-modify")
-;; (setf (title instance) (format nil "~a - Modify" ,,component))
-;; (with-resume-database
-;; (let* ((resume-pkg (make-instance 'resume-pkg))
-;; (user (get-user))
-;; (,,component-s (get-record resume-pkg (make-instance ',,component-s :id ,id :user_id (id user)))))
-;; (if ,,component-s
-;; (setf (form instance) (make-form ,,form-modify
-;; nil
-;; t
-;; `((:name "id" :field-type "hidden" :value ,(id ,component-s) :required "required")
-;; ;;,,@input-modify-fields
-;; (:label ,,,(format nil "Modify ~a" component) :field-type "button" :onclick ,,(format nil "on_~a_modify_submit_clicked()" component-lcase)))))
-;; (setf (session-value :errormsg) (format nil "Error: could not modify ~a. Not found." ,,component)))))))
-
-;; (defmacro ,func-modify-submit-s (,@(append '(id) arg-names))
-;; `(progn
-;; (declare (special ,,@(append '(id) arg-names)))
-;; (with-auth (instance ,,class-modify-s "resume-modify")
-;; (setf (title instance) (format nil "~a - Modify" ,,component))
-;; (with-resume-database
-;; (handler-case
-;; (let* ((resume-pkg (make-instance 'resume-pkg))
-;; (user (get-user))
-;; (,,component-s (get-record resume-pkg (make-instance ',,component-s :id ,id :user_id (id user)))))
-;; (loop for param in (remove-if (lambda (x)
-;; (intersection `(,x) '(id)))
-;; (sb-introspect:function-lambda-list #',func-modify-submit-s))
-;; do (setf (slot-value ,,component-s param) (symbol-value param)))
-;; (update-record resume-pkg ,,component-s)
-;; (setf (session-value :message) (format nil "~a modified successfully." ,,component)))
-;; (error (e)
-;; (setf (session-value :errormsg) (format nil "Error modifying ~a. ~a" ,,component e))))))))
-
-;; (defmacro ,func-delete-s (id)
-;; `(with-auth (instance ,,class-modify-s "resume-modify")
-;; (with-resume-database
-;; (let* ((resume-pkg (make-instance 'resume-pkg))
-;; (user (get-user))
-;; (,,component-s (get-record resume-pkg (make-instance ',,component-s :id ,id :user_id (id user)))))
-;; (if ,,component-s
-;; (progn
-;; (delete-record resume-pkg ,,component-s)
-;; (setf (session-value :message) (format nil "~a deleted successfully." ,,component)))
-;; (setf (session-value :errormsg) (format nil "Error: could not delete ~a: not found." ,,component)))))
-
-(defmacro define-resume-component ((component-s rest-args input-add-fields input-modify-fields))
+(defmacro define-resume-component ((component-s rest-args input-add-fields input-modify-fields order-by &optional view-p))
"`component-s' is a symbol that matches the component's record object
name, i.e SKILL, JOB, EDUCATION, LANGUAGE, CONTACTINFO. This will be
used all over the place. The record name equals the component name.
@@ -708,10 +160,14 @@ used all over the place. The record name equals the component name.
forms. In the form like this example: ((id :parameter-type 'integer))
`input-add-fields' and `input-modify-fields' are lists of generic form
-fields that get inserted into the add and modify forms."
+fields that get inserted into the add and modify forms.
+
+`view-p' is `t' if the component has a view in the database because it
+needs to JOIN with other data."
(let* ((component (symbol-name component-s))
(component-lcase (string-downcase component))
(components-s (intern (format nil "~aS" component)))
+ (table (format nil "resume.~a~a" component-lcase (if view-p "_v" "")))
(arg-names (loop for arg in rest-args collect (car arg)))
(func-root-s (intern (format nil "~a-JSON" component)))
(func-view-s (intern (format nil "~a-VIEW-JSON" component)))
@@ -735,8 +191,8 @@ fields that get inserted into the add and modify forms."
(setf (components instance) (get-records resume-pkg
(make-instance ',component-s
:user_id (id user)
- :*table "resume.contactinfo_v")
- "state_abbr asc, city asc, address asc"))))
+ :*table ,table)
+ ,order-by))))
(sanitize-rest-json instance)
(loop for component in (components instance)
do (sanitize-json component))))
@@ -777,7 +233,7 @@ fields that get inserted into the add and modify forms."
(,component-s (get-record resume-pkg (make-instance ',component-s
:id id
:user_id (id user)
- :*table "resume.contactinfo_v"))))
+ :*table ,table))))
(if ,component-s
(setf (form instance) (make-form ,form-modify
nil
@@ -796,7 +252,7 @@ fields that get inserted into the add and modify forms."
(,component-s (get-record resume-pkg (make-instance ',component-s
:id id
:user_id (id user)
- :*table "resume.contactinfo_v"))))
+ :*table ,table))))
(if ,component-s
(let ((new-component (make-instance ',component-s)))
(loop for param in (sb-introspect:function-lambda-list #',func-modify-submit-s)
@@ -816,7 +272,7 @@ fields that get inserted into the add and modify forms."
(,component-s (get-record resume-pkg (make-instance ',component-s
:id id
:user_id (id user)
- :*table "resume.contactinfo_v"))))
+ :*table ,table))))
(if ,component-s
(progn
(delete-record resume-pkg (make-instance ',component-s :id id))
@@ -849,4 +305,72 @@ fields that get inserted into the add and modify forms."
(:name "email" :label "Email" :field-type "text" :value ,(email contactinfo) :required "required")
(:name "url" :label "URL" :field-type "text" :value ,(url contactinfo))
(:name "visastatus_id" :label "VISA Status" :field-type "select" :value (visastatus_id contactinfo) :options ,(visastatus-options (get-records resume-pkg (make-instance 'visastatus) "visastatus asc")) :required "required")
- (:label "Modify CONTACTINFO" :field-type "button" :onclick ,(format nil "on_contactinfo_modify_submit_clicked(~a)" id)))))
+ (:label "Modify CONTACTINFO" :field-type "button" :onclick ,(format nil "on_contactinfo_modify_submit_clicked(~a)" id)))
+ "state_abbr asc, city asc, address asc"
+ t))
+
+(define-resume-component (education
+ ((school :parameter-type 'string) (major :parameter-type 'string) (minor :parameter-type 'string) (degree :parameter-type 'string) (progress :parameter-type 'string) (start_date :parameter-type 'string) (end_date :parameter-type 'string))
+ `((:name "school" :label "School" :field-type "text" :required "required")
+ (:name "major" :label "Major" :field-type "text" :required "required")
+ (:name "minor" :label "Minor" :field-type "text")
+ (:name "degree" :label "Degree" :field-type "text" :required "required")
+ (:name "progress" :label "Progress" :field-type "text" :required "required")
+ (:name "start_date" :label "Start Date" :field-type "text" :required "required")
+ (:name "end_date" :label "End Date" :field-type "text" :required "required")
+ (:label "Add EDUCATION" :field-type "button" :onclick "on_education_add_submit_clicked()"))
+ `((:name "id" :field-type "hidden" :value ,(id education) :required "required")
+ (:name "school" :label "School" :field-type "text" :value ,(school education) :required "required")
+ (:name "major" :label "Major" :field-type "text" :value ,(major education) :required "required")
+ (:name "minor" :label "Minor" :field-type "text" :value ,(minor education))
+ (:name "degree" :label "Degree" :field-type "text" :value ,(degree education) :required "required")
+ (:name "progress" :label "Progress" :field-type "text" :value ,(progress education) :required "required")
+ (:name "start_date" :label "Start Date" :field-type "text" :value ,(start_date education) :required "required")
+ (:name "end_date" :label "End Date" :field-type "text" :value ,(end_date education) :required "required")
+ (:label "Modify EDUCATION" :field-type "button" :onclick ,(format nil "on_education_modify_submit_clicked(~a)" id)))
+ "end_date desc, start_date desc, school asc, degree asc, major asc, minor asc"))
+
+(define-resume-component (language
+ ((name :parameter-type 'string) (understanding_listening :parameter-type 'string) (understanding_reading :parameter-type 'string) (speaking_interaction :parameter-type 'string) (speaking_production :parameter-type 'string) (writing :parameter-type 'string))
+ `((:name "name" :label "Name" :field-type "text" :required "required")
+ (:name "understanding_listening" :label "Understanding Listening" :field-type "select" :options ,(language-options) :required "required")
+ (:name "understanding_reading" :label "Understanding Reading" :field-type "select" :options ,(language-options) :required "required")
+ (:name "speaking_interaction" :label "Speaking Interaction" :field-type "select" :options ,(language-options) :required "required")
+ (:name "speaking_production" :label "Speaking Production" :field-type "select" :options ,(language-options) :required "required")
+ (:name "writing" :label "Writing" :field-type "select" :options ,(language-options) :required "required")
+ (:label "Add LANGUAGE" :field-type "button" :onclick "on_language_add_submit_clicked()"))
+ `((:name "id" :field-type "hidden" :value ,(id language) :required "required")
+ (:name "name" :label "Name" :field-type "text" :value ,(name language) :required "required")
+ (:name "understanding_listening" :label "Understanding Listening" :field-type "select" :options ,(language-options) :value ,(understanding_listening language) :required "required")
+ (:name "understanding_reading" :label "Understanding Reading" :field-type "select" :options ,(language-options) :value ,(understanding_reading language) :required "required")
+ (:name "speaking_interaction" :label "Speaking Interaction" :field-type "select" :options ,(language-options) :value ,(speaking_interaction language) :required "required")
+ (:name "speaking_production" :label "Speaking Production" :field-type "select" :options ,(language-options) :value ,(speaking_production language) :required "required")
+ (:name "writing" :label "Writing" :field-type "select" :options ,(language-options) :value ,(writing language) :required "required")
+ (:label "Modify LANGUAGE" :field-type "button" :onclick ,(format nil "on_language_modify_submit_clicked(~a)" id)))
+ "name asc"))
+
+(define-resume-component (skill
+ ((skill :parameter-type 'string))
+ `((:name "skill" :label "Skill" :field-type "text" :required "required")
+ (:label "Add Skill" :field-type "button" :onclick "on_skill_add_submit_clicked()"))
+ `((:name "id" :field-type "hidden" :value ,(id skill) :required "required")
+ (:name "skill" :label "Skill" :field-type "text" :value ,(skill skill) :required "required")
+ (:label "Modify SKILL" :field-type "button" :onclick ,(format nil "on_skill_modify_submit_clicked(~a)" id)))
+ "skill asc"))
+
+(define-resume-component (job
+ ((job :parameter-type 'string))
+ `((:name "company" :label "Company" :field-type "text" :required "required")
+ (:name "location" :label "Location" :field-type "text" :required "required")
+ (:name "start_date" :label "Start Date" :field-type "text" :required "required")
+ (:name "end_date" :label "End Date" :field-type "text" :required "required")
+ (:name "overview" :label "Overview" :field-type "textarea" :required "required")
+ (:label "Add Job" :field-type "button" :onclick "on_job_add_submit_clicked()"))
+ `((:name "id" :field-type "hidden" :value ,(id job) :required "required")
+ (:name "company" :label "Company" :field-type "text" :value ,(company job) :required "required")
+ (:name "location" :label "Location" :field-type "text" :value ,(location job) :required "required")
+ (:name "start_date" :label "Start Date" :field-type "text" :value ,(start_date job) :required "required")
+ (:name "end_date" :label "End Date" :field-type "text" :value ,(end_date job) :required "required")
+ (:name "overview" :label "Overview" :field-type "textarea" :value ,(overview job) :required "required")
+ (:label "Modify JOB" :field-type "button" :onclick ,(format nil "on_job_modify_submit_clicked(~a)" id)))
+ "end_date desc, start_date desc, company asc"))
diff --git a/lisp/webapps/resume/clojurescript/resume/src/core.cljs b/lisp/webapps/resume/clojurescript/resume/src/core.cljs
index 036e866..0a3e6c2 100644
--- a/lisp/webapps/resume/clojurescript/resume/src/core.cljs
+++ b/lisp/webapps/resume/clojurescript/resume/src/core.cljs
@@ -1525,7 +1525,7 @@
[:th {:scope "col"} "Mod"]
[:th {:scope "col"} "Del"]]]
[:tbody
- (for [education (get jsonobj "educations")]
+ (for [education (get jsonobj "components")]
[:tr
[:td (get education "school")]
[:td (get education "start_date")]
@@ -1615,22 +1615,22 @@
;; education-modify-submit
-(defn on-education-modify-submit-clicked []
+(defn on-education-modify-submit-clicked [id]
(when (-> (jquery "#education-modify-form")
(.get "0")
(.checkValidity))
(.modal (jquery "#modify") "hide")
- (render-education-modify-submit)))
+ (render-education-modify-submit id)))
(defn handler-education-modify-submit [response]
(let [jsonobj (js->clj (js/JSON.parse response))]
(auth-notifications jsonobj)
(on-menu-clicked "/resume/education")))
-(defn render-education-modify-submit []
+(defn render-education-modify-submit [id]
(POST "/resume/education/modify/submit"
{:format :raw
- :params {:id (dommy/value (dommy/sel1 :#id))
+ :params {:id id
:school (dommy/value (dommy/sel1 :#school))
:major (dommy/value (dommy/sel1 :#major))
:minor (dommy/value (dommy/sel1 :#minor))
@@ -1711,7 +1711,7 @@
[:th {:scope "col"} "Mod"]
[:th {:scope "col"} "Del"]]]
[:tbody
- (for [language (get jsonobj "languages")]
+ (for [language (get jsonobj "components")]
[:tr
[:td (get language "name")]
[:td (get language "understanding_listening")]
@@ -1799,22 +1799,22 @@
;; language-modify-submit
-(defn on-language-modify-submit-clicked []
+(defn on-language-modify-submit-clicked [id]
(when (-> (jquery "#language-modify-form")
(.get "0")
(.checkValidity))
(.modal (jquery "#modify") "hide")
- (render-language-modify-submit)))
+ (render-language-modify-submit id)))
(defn handler-language-modify-submit [response]
(let [jsonobj (js->clj (js/JSON.parse response))]
(auth-notifications jsonobj)
(on-menu-clicked "/resume/language")))
-(defn render-language-modify-submit []
+(defn render-language-modify-submit [id]
(POST "/resume/language/modify/submit"
{:format :raw
- :params {:id (dommy/value (dommy/sel1 :#id))
+ :params {:id id
:name (dommy/value (dommy/sel1 :#name))
:understanding_listening (dommy/value (dommy/sel1 :#understanding_listening))
:understanding_reading (dommy/value (dommy/sel1 :#understanding_reading))
@@ -1889,7 +1889,7 @@
[:th {:scope "col"} "Mod"]
[:th {:scope "col"} "Del"]]]
[:tbody
- (for [skill (get jsonobj "skills")]
+ (for [skill (get jsonobj "components")]
[:tr
[:td (get skill "skill")]
[:td {:width "30"}
@@ -1967,22 +1967,22 @@
;; skill-modify-submit
-(defn on-skill-modify-submit-clicked []
+(defn on-skill-modify-submit-clicked [id]
(when (-> (jquery "#skill-modify-form")
(.get "0")
(.checkValidity))
(.modal (jquery "#modify") "hide")
- (render-skill-modify-submit)))
+ (render-skill-modify-submit id)))
(defn handler-skill-modify-submit [response]
(let [jsonobj (js->clj (js/JSON.parse response))]
(auth-notifications jsonobj)
(on-menu-clicked "/resume/skill")))
-(defn render-skill-modify-submit []
+(defn render-skill-modify-submit [id]
(POST "/resume/skill/modify/submit"
{:format :raw
- :params {:id (dommy/value (dommy/sel1 :#id))
+ :params {:id id
:skill (dommy/value (dommy/sel1 :#skill))}
:handler handler-skill-modify-submit}))
@@ -2019,7 +2019,8 @@
(= handler "/resume/contactinfo") (render-contactinfo)
(= handler "/resume/education") (render-education)
(= handler "/resume/language") (render-language)
- (= handler "/resume/skill") (render-skill)))
+ (= handler "/resume/skill") (render-skill)
+ (= handler "/resume/job") (render-job)))
(defn handler-location [response]
(let [jsonobj (js->clj (js/JSON.parse response))]
diff --git a/lisp/webapps/resume/site.lisp b/lisp/webapps/resume/site.lisp
index 8ebce16..1a1c7a7 100644
--- a/lisp/webapps/resume/site.lisp
+++ b/lisp/webapps/resume/site.lisp
@@ -129,90 +129,6 @@
(defmacro .resume-delete ()
`(resume-delete-json id))
-;; (defmacro .contactinfo ()
-;; `(contactinfo-json))
-
-;; (defmacro .contactinfo-view ()
-;; `(contactinfo-view-json))
-
-;; (defmacro .contactinfo-add ()
-;; `(contactinfo-add-json))
-
-;; (defmacro .contactinfo-add-submit ()
-;; `(contactinfo-add-submit-json address city state_id phone email visastatus_id))
-
-;; (defmacro .contactinfo-modify ()
-;; `(contactinfo-modify-json id))
-
-;; (defmacro .contactinfo-modify-submit ()
-;; `(contactinfo-modify-submit-json id address city state_id phone email visastatus_id))
-
-;; (defmacro .contactinfo-delete ()
-;; `(contactinfo-delete-json id))
-
-;; (defmacro .education ()
-;; `(education-json))
-
-;; (defmacro .education-view ()
-;; `(education-view-json))
-
-;; (defmacro .education-add ()
-;; `(education-add-json))
-
-;; (defmacro .education-add-submit ()
-;; `(education-add-submit-json school major minor degree progress start_date end_date))
-
-;; (defmacro .education-modify ()
-;; `(education-modify-json id))
-
-;; (defmacro .education-modify-submit ()
-;; `(education-modify-submit-json id school major minor degree progress start_date end_date))
-
-;; (defmacro .education-delete ()
-;; `(education-delete-json id))
-
-;; (defmacro .language ()
-;; `(language-json))
-
-;; (defmacro .language-view ()
-;; `(language-view-json))
-
-;; (defmacro .language-add ()
-;; `(language-add-json))
-
-;; (defmacro .language-add-submit ()
-;; `(language-add-submit-json name understanding_listening understanding_reading speaking_interaction speaking_production writing))
-
-;; (defmacro .language-modify ()
-;; `(language-modify-json id))
-
-;; (defmacro .language-modify-submit ()
-;; `(language-modify-submit-json id name understanding_listening understanding_reading speaking_interaction speaking_production writing))
-
-;; (defmacro .language-delete ()
-;; `(language-delete-json id))
-
-;; (defmacro .skill ()
-;; `(skill-json))
-
-;; (defmacro .skill-view ()
-;; `(skill-view-json))
-
-;; (defmacro .skill-add ()
-;; `(skill-add-json))
-
-;; (defmacro .skill-add-submit ()
-;; `(skill-add-submit-json skill))
-
-;; (defmacro .skill-modify ()
-;; `(skill-modify-json id))
-
-;; (defmacro .skill-modify-submit ()
-;; `(skill-modify-submit-json id skill))
-
-;; (defmacro .skill-delete ()
-;; `(skill-delete-json id))
-
(define-endpoint ("/location" :method :post) (&post (location :parameter-type 'string)) .location)
(define-endpoint ("/home" :method :get) () .home-get)
(define-endpoint ("/home" :method :post) (&post (message :parameter-type 'string) (errormsg :parameter-type 'string)) .home-post)
@@ -256,31 +172,3 @@
(define-endpoint ("/resume/modify" :method :post) (&post (id :parameter-type 'integer)) .resume-modify)
(define-endpoint ("/resume/modify/submit" :method :post) (&post (id :parameter-type 'integer) (name :parameter-type 'string)) .resume-modify-submit)
(define-endpoint ("/resume/delete/:id" :method :delete) (&path (id 'integer)) .resume-delete)
-;; (define-endpoint ("/resume/contactinfo" :method :get) () .contactinfo)
-;; (define-endpoint ("/resume/contactinfo/view" :method :get) () .contactinfo-view)
-;; (define-endpoint ("/resume/contactinfo/add" :method :post) () .contactinfo-add)
-;; (define-endpoint ("/resume/contactinfo/add/submit" :method :post) (&post (address :parameter-type 'string) (city :parameter-type 'string) (state_id :parameter-type 'integer) (phone :parameter-type 'string) (email :parameter-type 'string) (visastatus_id :parameter-type 'integer)) .contactinfo-add-submit)
-;; (define-endpoint ("/resume/contactinfo/modify" :method :post) (&post (id :parameter-type 'integer)) .contactinfo-modify)
-;; (define-endpoint ("/resume/contactinfo/modify/submit" :method :post) (&post (id :parameter-type 'integer) (address :parameter-type 'string) (city :parameter-type 'string) (state_id :parameter-type 'integer) (phone :parameter-type 'string) (email :parameter-type 'string) (visastatus_id :parameter-type 'integer)) .contactinfo-modify-submit)
-;; (define-endpoint ("/resume/contactinfo/delete/:id" :method :delete) (&path (id 'integer)) .contactinfo-delete)
-;; (define-endpoint ("/resume/education" :method :get) () .education)
-;; (define-endpoint ("/resume/education/view" :method :get) () .education-view)
-;; (define-endpoint ("/resume/education/add" :method :post) () .education-add)
-;; (define-endpoint ("/resume/education/add/submit" :method :post) (&post (school :parameter-type 'string) (major :parameter-type 'string) (minor :parameter-type 'string) (degree :parameter-type 'string) (progress :parameter-type 'string) (start_date :parameter-type 'string) (end_date :parameter-type 'string)) .education-add-submit)
-;; (define-endpoint ("/resume/education/modify" :method :post) (&post (id :parameter-type 'integer)) .education-modify)
-;; (define-endpoint ("/resume/education/modify/submit" :method :post) (&post (id :parameter-type 'integer) (school :parameter-type 'string) (major :parameter-type 'string) (minor :parameter-type 'string) (degree :parameter-type 'string) (progress :parameter-type 'string) (start_date :parameter-type 'string) (end_date :parameter-type 'string)) .education-modify-submit)
-;; (define-endpoint ("/resume/education/delete/:id" :method :delete) (&path (id 'integer)) .education-delete)
-;; (define-endpoint ("/resume/language" :method :get) () .language)
-;; (define-endpoint ("/resume/language/view" :method :get) () .language-view)
-;; (define-endpoint ("/resume/language/add" :method :post) () .language-add)
-;; (define-endpoint ("/resume/language/add/submit" :method :post) (&post (name :parameter-type 'string) (understanding_listening :parameter-type 'string) (understanding_reading :parameter-type 'string) (speaking_interaction :parameter-type 'string) (speaking_production :parameter-type 'string) (writing :parameter-type 'string)) .language-add-submit)
-;; (define-endpoint ("/resume/language/modify" :method :post) (&post (id :parameter-type 'integer)) .language-modify)
-;; (define-endpoint ("/resume/language/modify/submit" :method :post) (&post (id :parameter-type 'integer) (name :parameter-type 'string) (understanding_listening :parameter-type 'string) (understanding_reading :parameter-type 'string) (speaking_interaction :parameter-type 'string) (speaking_production :parameter-type 'string) (writing :parameter-type 'string)) .language-modify-submit)
-;; (define-endpoint ("/resume/language/delete/:id" :method :delete) (&path (id 'integer)) .language-delete)
-;; (define-endpoint ("/resume/skill" :method :get) () .skill)
-;; (define-endpoint ("/resume/skill/view" :method :get) () .skill-view)
-;; (define-endpoint ("/resume/skill/add" :method :post) () .skill-add)
-;; (define-endpoint ("/resume/skill/add/submit" :method :post) (&post (skill :parameter-type 'string)) .skill-add-submit)
-;; (define-endpoint ("/resume/skill/modify" :method :post) (&post (id :parameter-type 'integer)) .skill-modify)
-;; (define-endpoint ("/resume/skill/modify/submit" :method :post) (&post (id :parameter-type 'integer) (skill :parameter-type 'string)) .skill-modify-submit)
-;; (define-endpoint ("/resume/skill/delete/:id" :method :delete) (&path (id 'integer)) .skill-delete)