diff options
| author | ckonstanski <kostcarl@isu.edu> | 2026-07-20 12:19:48 -0600 |
|---|---|---|
| committer | ckonstanski <kostcarl@isu.edu> | 2026-07-20 12:19:48 -0600 |
| commit | fa7c4554b4c2b4ad70a7c0afbab11b6f0a43d14a (patch) | |
| tree | 0eced628f2cd347cfb5642a02414f06cb0ad99c0 | |
| parent | d28e2cecd04b71bd6f62e065f8715d852043c5a2 (diff) | |
stuff
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | lisp/service/resume-service.lisp | 7 | ||||
| -rw-r--r-- | lisp/sql/resume-pkg.lisp | 6 | ||||
| -rw-r--r-- | lisp/webapps/resume/site.lisp | 2 | ||||
| -rw-r--r-- | sql/functions/resume.delete_resume.sql | 26 | ||||
| -rw-r--r-- | sql/tables/resume.contactinfo.sql | 4 | ||||
| -rw-r--r-- | sql/tables/resume.job_skill.sql | 4 | ||||
| -rw-r--r-- | sql/tables/resume.resume.sql | 2 | ||||
| -rw-r--r-- | sql/tables/resume.resume_contactinfo.sql | 4 | ||||
| -rw-r--r-- | sql/tables/resume.resume_education.sql | 4 | ||||
| -rw-r--r-- | sql/tables/resume.resume_job.sql | 4 | ||||
| -rw-r--r-- | sql/tables/resume.resume_language.sql | 4 |
12 files changed, 52 insertions, 20 deletions
@@ -1,8 +1,9 @@ # resume `resume` is a resume-building tool written by Carlos Konstanski. The -ned for this tool arose during the Great Job Hunt of 2026. I got tired -of manually writing new versions of my resume for every application. +need for this tool arose during the Great Job Hunt of 2026. I got +tired of manually writing new versions of my resume for every +application. `resume` is written in Lisp. The server-side is written in SBCL while the client-side is written in ClojureScript. Additionally the diff --git a/lisp/service/resume-service.lisp b/lisp/service/resume-service.lisp index bfce3c1..d31ae30 100644 --- a/lisp/service/resume-service.lisp +++ b/lisp/service/resume-service.lisp @@ -87,7 +87,7 @@ (user (get-user)) (resume (get-resume resume-pkg (make-instance 'resume :id id :user_id (id user))))) (setf (name resume) name) - (update-resume resume-pkg resume) + (update-resume resume-pkg resume) (setf (session-value :message) (format nil "Resume \"~a\" modified successfully." (name resume)))) (error (e) (setf (session-value :errormsg) (format nil "Error modifying resume \"~a\". ~a" name e))))))) @@ -104,7 +104,6 @@ (resume (get-resume resume-pkg (make-instance 'resume :id id :user_id (id user))))) (if resume (progn - ;; TODO delete stuff - (setf (session-value :errormsg) nil) - (setf (session-value :message) "Resume deleted successfully.")) + (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.")))))) diff --git a/lisp/sql/resume-pkg.lisp b/lisp/sql/resume-pkg.lisp index cc79173..8a7b0fa 100644 --- a/lisp/sql/resume-pkg.lisp +++ b/lisp/sql/resume-pkg.lisp @@ -23,3 +23,9 @@ (defmethod update-resume ((resume-pkg resume-pkg) (resume resume)) (update-record resume-pkg resume)) + +(defmethod delete-resume ((resume-pkg resume-pkg) (resume resume)) + (setf (*table resume) (format nil + "resume.delete_resume(~a)" + (id resume))) + (caar (call-pg-function resume-pkg resume))) diff --git a/lisp/webapps/resume/site.lisp b/lisp/webapps/resume/site.lisp index a7e5916..80bdbe1 100644 --- a/lisp/webapps/resume/site.lisp +++ b/lisp/webapps/resume/site.lisp @@ -150,7 +150,7 @@ `(resumes-modify-submit-json id name)) (defmacro .resumes-delete () - `(users-delete-json id)) + `(resumes-delete-json id)) (define-endpoint ("/" :method :get) () .base) (define-endpoint ("/location" :method :post) (&post (location :parameter-type 'string)) .location) diff --git a/sql/functions/resume.delete_resume.sql b/sql/functions/resume.delete_resume.sql new file mode 100644 index 0000000..9a3c06f --- /dev/null +++ b/sql/functions/resume.delete_resume.sql @@ -0,0 +1,26 @@ +drop function resume.delete_resume ( + p_id bigint +); + +create or replace function resume.delete_resume ( + p_id bigint +) +returns void +as $$ +begin + delete from resume.resume_contactinfo + where resume_id = p_id; + + delete from resume.resume_education + where resume_id = p_id; + + delete from resume.resume_job + where resume_id = p_id; + + delete from resume.resume_language + where resume_id = p_id; + + delete from resume.resume + where id = p_id; +end; +$$ language plpgsql; diff --git a/sql/tables/resume.contactinfo.sql b/sql/tables/resume.contactinfo.sql index 47eb1c7..9290da0 100644 --- a/sql/tables/resume.contactinfo.sql +++ b/sql/tables/resume.contactinfo.sql @@ -4,8 +4,8 @@ create table resume.contactinfo ( id serial8 primary key, address character varying(255) not null, city character varying(255) not null, - state_id int not null references resume.states(id), + state_id bigint not null references resume.states(id), phone character varying(255) not null, email character varying(255) not null, - visastatus_id int not null references resume.visastatus(id) + visastatus_id bigint not null references resume.visastatus(id) ); diff --git a/sql/tables/resume.job_skill.sql b/sql/tables/resume.job_skill.sql index 3b16b53..0bf003d 100644 --- a/sql/tables/resume.job_skill.sql +++ b/sql/tables/resume.job_skill.sql @@ -2,6 +2,6 @@ drop table resume.job_skill cascade; create table resume.job_skill ( id serial8 primary key, - job_id int not null references resume.job(id), - skill_id int not null references resume.skill(id) + job_id bigint not null references resume.job(id), + skill_id bigint not null references resume.skill(id) ); diff --git a/sql/tables/resume.resume.sql b/sql/tables/resume.resume.sql index dd34db1..f751a28 100644 --- a/sql/tables/resume.resume.sql +++ b/sql/tables/resume.resume.sql @@ -2,7 +2,7 @@ drop table resume.resume cascade; create table resume.resume ( id serial8 primary key, - user_id int not null references auth.users(id), + user_id bigint not null references auth.users(id), name character varying(255) not null, unique (user_id, name) ); diff --git a/sql/tables/resume.resume_contactinfo.sql b/sql/tables/resume.resume_contactinfo.sql index a51e33c..01f2f5f 100644 --- a/sql/tables/resume.resume_contactinfo.sql +++ b/sql/tables/resume.resume_contactinfo.sql @@ -2,6 +2,6 @@ drop table resume.resume_contactinfo cascade; create table resume.resume_contactinfo ( id serial8 primary key, - resume_id int not null references resume.resume(id), - contactinfo_id int not null references resume.contactinfo(id) + resume_id bigint not null references resume.resume(id), + contactinfo_id bigint not null references resume.contactinfo(id) ); diff --git a/sql/tables/resume.resume_education.sql b/sql/tables/resume.resume_education.sql index 739169d..92bf58a 100644 --- a/sql/tables/resume.resume_education.sql +++ b/sql/tables/resume.resume_education.sql @@ -2,6 +2,6 @@ drop table resume.resume_education cascade; create table resume.resume_education ( id serial8 primary key, - resume_id int not null references resume.resume(id), - education_id int not null references resume.education(id) + resume_id bigint not null references resume.resume(id), + education_id bigint not null references resume.education(id) ); diff --git a/sql/tables/resume.resume_job.sql b/sql/tables/resume.resume_job.sql index 4418242..42faec6 100644 --- a/sql/tables/resume.resume_job.sql +++ b/sql/tables/resume.resume_job.sql @@ -2,6 +2,6 @@ drop table resume.resume_job cascade; create table resume.resume_job ( id serial8 primary key, - resume_id int not null references resume.resume(id), - job_id int not null references resume.job(id) + resume_id bigint not null references resume.resume(id), + job_id bigint not null references resume.job(id) ); diff --git a/sql/tables/resume.resume_language.sql b/sql/tables/resume.resume_language.sql index 15a63e3..1ca5d91 100644 --- a/sql/tables/resume.resume_language.sql +++ b/sql/tables/resume.resume_language.sql @@ -2,6 +2,6 @@ drop table resume.resume_language cascade; create table resume.resume_language ( id serial8 primary key, - resume_id int not null references resume.resume(id), - language_id int not null references resume.language(id) + resume_id bigint not null references resume.resume(id), + language_id bigint not null references resume.language(id) ); |
