diff options
Diffstat (limited to 'internal/db/bundb/poll.go')
-rw-r--r-- | internal/db/bundb/poll.go | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/internal/db/bundb/poll.go b/internal/db/bundb/poll.go index 5da9832f0..d21945377 100644 --- a/internal/db/bundb/poll.go +++ b/internal/db/bundb/poll.go @@ -380,8 +380,8 @@ func (p *pollDB) PutPollVote(ctx context.Context, vote *gtsmodel.PollVote) error return err } - // Increment poll votes for choices. - poll.IncrementVotes(vote.Choices) + // Increment vote choices and voters count. + poll.IncrementVotes(vote.Choices, true) // Finally, update the poll entry. _, err := tx.NewUpdate(). @@ -394,6 +394,17 @@ func (p *pollDB) PutPollVote(ctx context.Context, vote *gtsmodel.PollVote) error }) } +func (p *pollDB) UpdatePollVote(ctx context.Context, vote *gtsmodel.PollVote, cols ...string) error { + return p.state.Caches.DB.PollVote.Store(vote, func() error { + _, err := p.db.NewUpdate(). + Model(vote). + Column(cols...). + Where("? = ?", bun.Ident("id"), vote.ID). + Exec(ctx) + return err + }) +} + func (p *pollDB) DeletePollVoteBy(ctx context.Context, pollID string, accountID string) error { // Gather necessary fields from // deleted for cache invaliation. @@ -487,8 +498,8 @@ func updatePollCounts(ctx context.Context, tx bun.Tx, deleted *gtsmodel.PollVote return err } - // Decrement votes for these choices. - poll.DecrementVotes(deleted.Choices) + // Decrement vote choices and voters count. + poll.DecrementVotes(deleted.Choices, true) // Finally, update the poll entry. if _, err := tx.NewUpdate(). |