From 814d38dc8d40daf855c7eb06d8da7ce3f3588b68 Mon Sep 17 00:00:00 2001 From: mrfry Date: Tue, 6 Oct 2020 18:04:50 +0200 Subject: [PATCH] Quick vote file structure refactor --- src/modules/api/api.js | 42 +++++++++++++---------------- src/modules/api/views/votethank.ejs | 2 +- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/modules/api/api.js b/src/modules/api/api.js index f388446..cf1ead6 100644 --- a/src/modules/api/api.js +++ b/src/modules/api/api.js @@ -195,7 +195,7 @@ function GetApp() { let voteData = { votes: {}, - users: [], + sum: {}, } if (utils.FileExists(voteFile)) { @@ -204,32 +204,26 @@ function GetApp() { utils.CreatePath(quickVoteResultsDir) } - if (!voteData.users.includes(user.id)) { - if (voteData.votes[val]) { - voteData.votes[val]++ - } else { - voteData.votes[val] = 1 - } - voteData.users.push(user.id) + const prevVote = voteData.votes[user.id] - logger.Log( - `Vote from #${user.id}: ${key}: ${val}`, - logger.GetColor('blue') - ) - res.render('votethank', { - result: 'success', - msg: 'vote added', - }) + voteData.votes[user.id] = val + if (voteData.sum[val]) { + voteData.sum[val]++ } else { - logger.Log( - `#${user.id} already voted for: ${key}: ${val}`, - logger.GetColor('blue') - ) - res.render('votethank', { - result: 'already voted', - msg: 'already voted', - }) + voteData.sum[val] = 1 } + if (prevVote) { + if (voteData.sum[prevVote]) { + voteData.sum[prevVote] -= 1 + } + } + + logger.Log(`Vote from #${user.id}: ${key}: ${val}`, logger.GetColor('blue')) + res.render('votethank', { + result: prevVote ? 'already voted' : 'success', + prevVote: prevVote, + msg: 'vote added', + }) utils.WriteFile(JSON.stringify(voteData), voteFile) }) diff --git a/src/modules/api/views/votethank.ejs b/src/modules/api/views/votethank.ejs index 3462074..fa30509 100755 --- a/src/modules/api/views/votethank.ejs +++ b/src/modules/api/views/votethank.ejs @@ -18,7 +18,7 @@ } else if (result == 'no such pool') { %> Ilyen nevű szavazás nincs :c <% } else if (result == 'already voted') { - %> Már szavaztál, de azért ty c: <% + %> előző szavazatod felülírva az újjal c: <% } else if (result == 'error') { %> Helytelen url paraméterek :c <% } else {