;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- (declaim (optimize (speed 0) (safety 3) (debug 3))) (in-package :resume) (defmacro .base (&optional (start-url "/home")) `(org-ckons-http::html5 `(html (head ((meta :name "viewport" :content "width=device-width, initial-scale=1, shrink-to-fit=no")) ((meta :charset "utf-8")) ((title) ,(title *webapp*)) ,@(mapcar (lambda (css) `((link :rel "stylesheet" :href ,(getf css :href) :integrity ,(getf css :integrity) :crossorigin ,(getf css :crossorigin)))) '((:href "https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" :integrity "sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" :crossorigin "anonymous") (:href "/static/css/stylesheet.css" :crossorigin "anonymous"))) ,@(mapcar (lambda (js) `((script :type "text/javascript" :src ,(getf js :src) :integrity ,(getf js :integrity) :crossorigin ,(getf js :crossorigin)))) '((:src "https://code.jquery.com/jquery-3.7.1.slim.min.js" :integrity "sha256-kmHvs0B+OpCW5GVHUNjv9rOmY0IvSIRcf7zGUDTDQM8=" :crossorigin "anonymous"))) ((script :type "text/javascript" :src "/cljs-out/dev-main.js"))) ((body :onload ,(format nil "resume.core.start(~a)" ,(if start-url (format nil "'~a'" start-url) "null"))) ((div :id "app")) ,@(mapcar (lambda (js) `((script :type "text/javascript" :src ,(getf js :src) :integrity ,(getf js :integrity) :crossorigin ,(getf js :crossorigin)))) '((:src "https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" :integrity "sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" :crossorigin "anonymous"))))))) (defmacro .location () `(location-json location)) (defmacro .home-get () `(about-us-json "home")) (defmacro .home-post () `(about-us-json "home" message errormsg)) (defmacro .home-view () `(about-us-view-json "home")) (defmacro .home-modify () `(about-us-modify-json "home")) (defmacro .home-modify-submit () `(about-us-modify-submit-json "home" content)) (defmacro .menu () `(menu-json)) (defmacro .menu-user () `(menu-user-json)) (defmacro .login () `(login-json)) (defmacro .login-authenticate () `(login-authenticate-json username pwd)) (defmacro .login-forgot () `(login-forgot-json)) (defmacro .logout () `(logout-json)) (defmacro .profile () `(profile-json)) (defmacro .profile-view () `(profile-view-json)) (defmacro .profile-modify () `(profile-modify-json)) (defmacro .profile-modify-submit () `(profile-modify-submit-json id username first_name last_name email phone)) (defmacro .password () `(password-json)) (defmacro .password-submit () `(password-submit-json id pwd pwd2)) (defmacro .contact-us () `(contact-us-json)) (defmacro .contact-us-view () `(contact-us-view-json)) (defmacro .contact-us-email () `(contact-us-email-json first_name last_name email phone comments)) (defmacro .messages () `(messages-json)) (defmacro .messages-results () `(messages-results-json read)) (defmacro .messages-mark () `(messages-mark-json read id)) (defmacro .users () `(users-json)) (defmacro .users-view () `(users-view-json)) (defmacro .users-add () `(users-add-json)) (defmacro .users-add-submit () `(users-add-submit-json role_groups first_name last_name email)) (defmacro .users-register () `(users-register-json hash)) (defmacro .users-register-form () `(users-register-form-json hash)) (defmacro .users-register-submit () `(users-register-submit-json hash username pwd pwd2 phone)) (defmacro .users-modify () `(users-modify-json id)) (defmacro .users-modify-submit () `(users-modify-submit-json id role_groups username first_name last_name email phone)) (defmacro .users-toggle-active () `(users-toggle-active-json id)) (defmacro .users-delete () `(users-delete-json id)) (defmacro .resume () `(resume-json)) (defmacro .resume-view () `(resume-view-json)) (defmacro .resume-add () `(resume-add-json)) (defmacro .resume-add-submit () `(resume-add-submit-json name)) (defmacro .resume-modify () `(resume-modify-json id)) (defmacro .resume-modify-submit () `(resume-modify-submit-json id name)) (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 ("/" :method :get) () .base) (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) (define-endpoint ("/home/view" :method :get) () .home-view) (define-endpoint ("/home/modify" :method :post) () .home-modify) (define-endpoint ("/home/modify/submit" :method :post) (&post (content :parameter-type 'string)) .home-modify-submit) (define-endpoint ("/menu" :method :get) () .menu) (define-endpoint ("/menu/user" :method :get) () .menu-user) (define-endpoint ("/login" :method :get) () .login) (define-endpoint ("/login/authenticate" :method :post) (&post (username :parameter-type 'string) (pwd :parameter-type 'string)) .login-authenticate) (define-endpoint ("/login/forgot" :method :get) () .login-forgot) (define-endpoint ("/logout" :method :get) () .logout) (define-endpoint ("/profile" :method :get) () .profile) (define-endpoint ("/profile/view" :method :get) () .profile-view) (define-endpoint ("/profile/modify" :method :post) () .profile-modify) (define-endpoint ("/profile/modify/submit" :method :post) (&post (id :parameter-type 'integer) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .profile-modify-submit) (define-endpoint ("/password" :method :get) () .password) (define-endpoint ("/password/submit" :method :post) (&post (id :parameter-type 'integer) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string)) .password-submit) (define-endpoint ("/contact-us" :method :get) () .contact-us) (define-endpoint ("/contact-us/view" :method :get) () .contact-us-view) (define-endpoint ("/contact-us/email" :method :post) (&post (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string) (comments :parameter-type 'string)) .contact-us-email) (define-endpoint ("/messages" :method :get) () .messages) (define-endpoint ("/messages/results" :method :post) (&post (read :parameter-type 'string)) .messages-results) (define-endpoint ("/messages/mark" :method :post) (&post (read :parameter-type 'string) (id :parameter-type 'integer)) .messages-mark) (define-endpoint ("/users" :method :get) () .users) (define-endpoint ("/users/view" :method :get) () .users-view) (define-endpoint ("/users/add" :method :post) () .users-add) (define-endpoint ("/users/add/submit" :method :post) (&post (role_groups :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string)) .users-add-submit) (define-endpoint ("/register/:hash" :method :get) (&path (hash 'string)) .base (format nil "/register/~a" hash)) (define-endpoint ("/users/register" :method :post) (&post (hash :parameter-type 'string)) .users-register) (define-endpoint ("/users/register/form" :method :post) (&post (hash :parameter-type 'string)) .users-register-form) (define-endpoint ("/users/register/submit" :method :post) (&post (hash :parameter-type 'string) (username :parameter-type 'string) (pwd :parameter-type 'string) (pwd2 :parameter-type 'string) (phone :parameter-type 'string)) .users-register-submit) (define-endpoint ("/users/modify" :method :post) (&post (id :parameter-type 'integer)) .users-modify) (define-endpoint ("/users/modify/submit" :method :post) (&post (id :parameter-type 'integer) (role_groups :parameter-type 'string) (username :parameter-type 'string) (first_name :parameter-type 'string) (last_name :parameter-type 'string) (email :parameter-type 'string) (phone :parameter-type 'string)) .users-modify-submit) (define-endpoint ("/users/toggle-active" :method :post) (&post (id :parameter-type 'integer)) .users-toggle-active) (define-endpoint ("/users/delete/:id" :method :delete) (&path (id 'integer)) .users-delete) (define-endpoint ("/resume" :method :get) () .resume) (define-endpoint ("/resume/view" :method :get) () .resume-view) (define-endpoint ("/resume/add" :method :post) () .resume-add) (define-endpoint ("/resume/add/submit" :method :post) (&post (name :parameter-type 'string)) .resume-add-submit) (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)