Make bans work properly

This commit is contained in:
Dessa Simpson 2020-09-19 12:18:45 -07:00
parent 53da0eb687
commit 76aa7b3bc4
3 changed files with 21 additions and 6 deletions

View file

@ -1,3 +1,4 @@
CREATE TABLE bans (
userid integer
userid integer,
PRIMARY KEY (userid)
)

View file

@ -86,23 +86,35 @@ as in the case of no votes, user.* will be NULL.
*/
CREATE OR REPLACE VIEW vote_score_normal_vw AS
SELECT requests.url,COUNT(votes.requesturl),(COUNT(votes.requesturl) * (SELECT normaluservotepoints FROM config)) AS votescore FROM requests
SELECT requests.url,
COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL),
(COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL) * (SELECT normaluservotepoints FROM config)) AS votescore
FROM requests
LEFT JOIN votes ON votes.requesturl = requests.url
LEFT JOIN users on votes.userid = users.userid
WHERE COALESCE(users.isfollower,FALSE) = FALSE AND COALESCE(users.issubscriber,FALSE) = FALSE
LEFT JOIN bans ON users.userid = bans.userid
WHERE COALESCE(users.isfollower,FALSE) = FALSE
AND COALESCE(users.issubscriber,FALSE) = FALSE
GROUP BY requests.url;
CREATE OR REPLACE VIEW vote_score_follower_vw AS
SELECT requests.url,COUNT(votes.requesturl),(COUNT(votes.requesturl) * (SELECT followervotepoints FROM config)) AS votescore FROM requests
SELECT requests.url,
COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL),
(COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL) * (SELECT followervotepoints FROM config)) AS votescore
LEFT JOIN votes ON votes.requesturl = requests.url
LEFT JOIN users on votes.userid = users.userid
WHERE COALESCE(users.isfollower,FALSE) = TRUE AND COALESCE(users.issubscriber,FALSE) = FALSE
LEFT JOIN bans ON users.userid = bans.userid
WHERE COALESCE(users.isfollower,FALSE) = TRUE
AND COALESCE(users.issubscriber,FALSE) = FALSE
GROUP BY requests.url;
CREATE OR REPLACE VIEW vote_score_subscriber_vw AS
SELECT requests.url,COUNT(votes.requesturl),(COUNT(votes.requesturl) * (SELECT subscribervotepoints FROM config)) AS votescore FROM requests
SELECT requests.url,
COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL),
(COUNT(votes.requesturl) FILTER(WHERE bans.userid IS NULL) * (SELECT subscribervotepoints FROM config)) AS votescore
LEFT JOIN votes ON votes.requesturl = requests.url
LEFT JOIN users on votes.userid = users.userid
LEFT JOIN bans ON users.userid = bans.userid
WHERE COALESCE(users.issubscriber,FALSE) = TRUE
GROUP BY requests.url;