From 60a38bd768ea6a31bbee34146be5daecac0015a2 Mon Sep 17 00:00:00 2001 From: pancakes Date: Thu, 6 Feb 2025 12:08:54 +1000 Subject: [PATCH] [backend/api] Batch poll votes query when rendering note poll --- .../Controllers/Web/Renderers/NoteRenderer.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Iceshrimp.Backend/Controllers/Web/Renderers/NoteRenderer.cs b/Iceshrimp.Backend/Controllers/Web/Renderers/NoteRenderer.cs index 02610fa0..32d11a55 100644 --- a/Iceshrimp.Backend/Controllers/Web/Renderers/NoteRenderer.cs +++ b/Iceshrimp.Backend/Controllers/Web/Renderers/NoteRenderer.cs @@ -209,6 +209,12 @@ public class NoteRenderer( .Where(p => notes.Contains(p.Note)) .ToListAsync(); + var votes = user != null + ? await db.PollVotes + .Where(p => notes.Contains(p.Note) && p.UserId == user.Id) + .ToListAsync() + : []; + return polls .Select(p => new NotePollSchema { @@ -221,9 +227,7 @@ public class NoteRenderer( Value = c.First, Votes = c.Second, Voted = user != null - && db.PollVotes.Any(v => v.NoteId == p.NoteId - && v.Choice == i - && v.User == user) + && votes.Any(v => v.NoteId == p.NoteId && v.Choice == i) }) .ToList(), VotersCount = p.VotersCount