summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorckonstanski <kostcarl@isu.edu>2026-07-20 12:19:48 -0600
committerckonstanski <kostcarl@isu.edu>2026-07-20 12:19:48 -0600
commitfa7c4554b4c2b4ad70a7c0afbab11b6f0a43d14a (patch)
tree0eced628f2cd347cfb5642a02414f06cb0ad99c0
parentd28e2cecd04b71bd6f62e065f8715d852043c5a2 (diff)
stuff
-rw-r--r--README.md5
-rw-r--r--lisp/service/resume-service.lisp7
-rw-r--r--lisp/sql/resume-pkg.lisp6
-rw-r--r--lisp/webapps/resume/site.lisp2
-rw-r--r--sql/functions/resume.delete_resume.sql26
-rw-r--r--sql/tables/resume.contactinfo.sql4
-rw-r--r--sql/tables/resume.job_skill.sql4
-rw-r--r--sql/tables/resume.resume.sql2
-rw-r--r--sql/tables/resume.resume_contactinfo.sql4
-rw-r--r--sql/tables/resume.resume_education.sql4
-rw-r--r--sql/tables/resume.resume_job.sql4
-rw-r--r--sql/tables/resume.resume_language.sql4
12 files changed, 52 insertions, 20 deletions
diff --git a/README.md b/README.md
index 40b1c99..ea086a4 100644
--- a/README.md
+++ b/README.md
@@ -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)
);