Add database logic to clear out requests that have 0 votes

Also, clean up some db constraints.

Fixes #29
This commit is contained in:
Dessa Simpson 2021-04-25 20:42:20 -07:00
parent 8483705ae4
commit 632dc73ee9
4 changed files with 35 additions and 3 deletions

24
db/upgrade/v0.6-v0.7.sql Normal file
View file

@ -0,0 +1,24 @@
BEGIN;
UPDATE version SET minor = 7;
ALTER TABLE votes
ALTER COLUMN requestUrl SET NOT NULL
ALTER COLUMN userId SET NOT NULL;
CREATE OR REPLACE PROCEDURE clear_zero_votes()
LANGUAGE SQL
AS $$
DELETE FROM requests WHERE NOT EXISTS
(SELECT FROM votes WHERE requests.url = votes.requesturl);
$$;
CREATE OR REPLACE PROCEDURE delete_vote(url varchar,voteuser int)
LANGUAGE SQL
AS $$
DELETE FROM votes WHERE requesturl = url AND userid = voteuser;
CALL update_scores();
CALL clear_zero_votes();
$$;
COMMIT;