feat: Chat-History auf max. 500 Nachrichten limitieren
This commit is contained in:
1 parent
58c5ccb79b
commit
e31daa2385
4 files changed
+53
-7
No files matched your search
@@ -33,16 +33,31 @@ public static class HistoryEndpoint
|
||||
return;
|
||||
}
|
||||
|
||||
const int messageLimit = 500;
|
||||
|
||||
var totalCount = await db.GetActiveMessageCount(sessionId);
|
||||
var messages = await db.GetLatestActiveMessages(sessionId, messageLimit);
|
||||
|
||||
// Nach Chain gruppieren (Reihenfolge beibehalten)
|
||||
var chainIds = messages.Select(m => m.ChainId).Distinct().ToList();
|
||||
var chains = await db.GetActiveChains(sessionId);
|
||||
var chainMap = chains.ToDictionary(c => c.ChainId);
|
||||
|
||||
var result = new List<object>();
|
||||
foreach (var chain in chains)
|
||||
foreach (var chainId in chainIds)
|
||||
{
|
||||
var messages = await db.GetChainMessages(chain.ChainId);
|
||||
result.Add(new { chain, messages });
|
||||
chainMap.TryGetValue(chainId, out var chain);
|
||||
var chainMessages = messages.Where(m => m.ChainId == chainId).ToList();
|
||||
result.Add(new { chain, messages = chainMessages });
|
||||
}
|
||||
|
||||
await ctx.Response.WriteAsJsonAsync(result);
|
||||
await ctx.Response.WriteAsJsonAsync(new
|
||||
{
|
||||
entries = result,
|
||||
hasMore = totalCount > messageLimit,
|
||||
totalCount,
|
||||
loadedCount = messages.Count
|
||||
});
|
||||
}
|
||||
|
||||
private static async Task HandlePoll(HttpContext ctx, DatabaseService db)
|
||||
|
||||
Reference in new issue
Block a user