mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-30 15:17:43 -05:00
Fix plus tier view when many results w/ suggests
This commit is contained in:
103
migrations/002-fix-plus-tier.js
Normal file
103
migrations/002-fix-plus-tier.js
Normal file
@@ -0,0 +1,103 @@
|
||||
// add missing min() call to handle multiple results w/ suggests correctly
|
||||
|
||||
module.exports.up = function (db) {
|
||||
db.prepare(`drop view "PlusTier"`).run();
|
||||
|
||||
db.prepare(
|
||||
`
|
||||
create view "PlusTier" as
|
||||
select
|
||||
"votedId" as "userId",
|
||||
min(
|
||||
case
|
||||
when "passedVoting" = 0
|
||||
and "wasSuggested" = 1 then null
|
||||
when "passedVoting" = 1 then "tier"
|
||||
when "passedVoting" = 0
|
||||
and "tier" != 3 then "tier" + 1
|
||||
end
|
||||
) as "tier"
|
||||
from
|
||||
"PlusVotingResult"
|
||||
where
|
||||
year = (
|
||||
select
|
||||
"year"
|
||||
from
|
||||
"PlusVote"
|
||||
where
|
||||
"validAfter" < strftime('%s', 'now')
|
||||
order by
|
||||
"year" desc,
|
||||
"month" desc
|
||||
limit
|
||||
1
|
||||
)
|
||||
and "month" = (
|
||||
select
|
||||
"month"
|
||||
from
|
||||
"PlusVote"
|
||||
where
|
||||
"validAfter" < strftime('%s', 'now')
|
||||
order by
|
||||
"year" desc,
|
||||
"month" desc
|
||||
limit
|
||||
1
|
||||
)
|
||||
group by
|
||||
"votedId";
|
||||
`
|
||||
).run();
|
||||
};
|
||||
|
||||
module.exports.down = function (db) {
|
||||
db.prepare(`drop view "PlusTier"`).run();
|
||||
|
||||
db.prepare(
|
||||
`
|
||||
create view "PlusTier" as
|
||||
select
|
||||
"votedId" as "userId",
|
||||
case
|
||||
when "passedVoting" = 0
|
||||
and "wasSuggested" = 1 then null
|
||||
when "passedVoting" = 1 then "tier"
|
||||
when "passedVoting" = 0
|
||||
and "tier" != 3 then "tier" + 1
|
||||
end "tier"
|
||||
from
|
||||
"PlusVotingResult"
|
||||
where
|
||||
year = (
|
||||
select
|
||||
"year"
|
||||
from
|
||||
"PlusVote"
|
||||
where
|
||||
"validAfter" < strftime('%s', 'now')
|
||||
order by
|
||||
"year" desc,
|
||||
"month" desc
|
||||
limit
|
||||
1
|
||||
)
|
||||
and "month" = (
|
||||
select
|
||||
"month"
|
||||
from
|
||||
"PlusVote"
|
||||
where
|
||||
"validAfter" < strftime('%s', 'now')
|
||||
order by
|
||||
"year" desc,
|
||||
"month" desc
|
||||
limit
|
||||
1
|
||||
)
|
||||
group by
|
||||
"votedId";
|
||||
`
|
||||
).run();
|
||||
};
|
||||
Reference in New Issue
Block a user