Speeding up visible location call
Deploy Promiscuity Auth API / deploy (push) Successful in 46s
Deploy Promiscuity Character API / deploy (push) Successful in 57s
Deploy Promiscuity Inventory API / deploy (push) Successful in 59s
Deploy Promiscuity Locations API / deploy (push) Successful in 58s
k8s smoke test / test (push) Successful in 8s

This commit is contained in:
2026-03-20 09:50:17 -05:00
parent 8ce6a05710
commit 038981d7b1
12 changed files with 209 additions and 41 deletions
@@ -88,6 +88,32 @@ public class InventoryStore
.ThenBy(i => i.ItemKey)
.ToListAsync();
public async Task<Dictionary<string, List<InventoryItem>>> GetByOwnersAsync(string ownerType, IEnumerable<string> ownerIds)
{
var normalizedOwnerType = NormalizeOwnerType(ownerType);
if (normalizedOwnerType is null)
return [];
var ids = ownerIds
.Where(id => !string.IsNullOrWhiteSpace(id))
.Select(id => id.Trim())
.Distinct(StringComparer.Ordinal)
.ToList();
if (ids.Count == 0)
return [];
var items = await _items.Find(i => i.OwnerType == normalizedOwnerType && ids.Contains(i.OwnerId))
.SortBy(i => i.OwnerId)
.ThenBy(i => i.EquippedSlot)
.ThenBy(i => i.Slot)
.ThenBy(i => i.ItemKey)
.ToListAsync();
return items
.GroupBy(item => item.OwnerId, StringComparer.Ordinal)
.ToDictionary(group => group.Key, group => group.ToList(), StringComparer.Ordinal);
}
public Task<List<ItemDefinition>> ListItemDefinitionsAsync() =>
_definitions.Find(Builders<ItemDefinition>.Filter.Empty).SortBy(d => d.ItemKey).ToListAsync();