summaryrefslogtreecommitdiff
path: root/internal/processing/polls/vote.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2023-11-08 22:37:35 +0000
committerLibravatar GitHub <noreply@github.com>2023-11-08 23:37:35 +0100
commit34d0879c1651d2703f94c1b653227c718aac475f (patch)
treeed215b9ef2b149238a56ccc988ba599224e1fc04 /internal/processing/polls/vote.go
parent[feature] add support for polls + receiving federated status edits (#2330) (diff)
downloadgotosocial-34d0879c1651d2703f94c1b653227c718aac475f.tar.xz
[bugfix] fix poll vote count responses on client and fedi API vote creation (#2343)
* increment poll votes *before* enqueuing vote to client API worker * increment vote counts before federating status update after vote in local poll * improved vote count calculation during backend -> frontend model conversion
Diffstat (limited to 'internal/processing/polls/vote.go')
-rw-r--r--internal/processing/polls/vote.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/internal/processing/polls/vote.go b/internal/processing/polls/vote.go
index 8c8f22225..c4a8a12a4 100644
--- a/internal/processing/polls/vote.go
+++ b/internal/processing/polls/vote.go
@@ -90,6 +90,11 @@ func (p *Processor) PollVote(ctx context.Context, requester *gtsmodel.Account, p
return nil, gtserror.NewErrorInternalError(err)
}
+ // Before enqueuing it, increment the poll
+ // vote counts on the copy attached to the
+ // PollVote (that we also later return).
+ poll.IncrementVotes(choices)
+
// Enqueue worker task to handle side-effects of user poll vote(s).
p.state.Workers.EnqueueClientAPI(ctx, messages.FromClientAPI{
APActivityType: ap.ActivityCreate,
@@ -98,11 +103,6 @@ func (p *Processor) PollVote(ctx context.Context, requester *gtsmodel.Account, p
OriginAccount: requester,
})
- // Before returning the converted poll model,
- // increment the vote counts on our local copy
- // to get latest, instead of another db query.
- poll.IncrementVotes(choices)
-
// Return converted API model poll.
return p.toAPIPoll(ctx, requester, poll)
}