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
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:
@@ -17,6 +17,37 @@ public class InventoryController : ControllerBase
|
||||
_inventory = inventory;
|
||||
}
|
||||
|
||||
[HttpPost("internal/by-owner/{ownerType}")]
|
||||
public async Task<IActionResult> GetByOwnersInternal(string ownerType, [FromBody] InternalOwnerInventoryBatchRequest req)
|
||||
{
|
||||
var configuredKey = (HttpContext.RequestServices.GetRequiredService<IConfiguration>()["InternalApi:Key"]
|
||||
?? HttpContext.RequestServices.GetRequiredService<IConfiguration>()["Jwt:Key"]
|
||||
?? string.Empty).Trim();
|
||||
var requestKey = (Request.Headers["X-Internal-Api-Key"].FirstOrDefault() ?? string.Empty).Trim();
|
||||
if (string.IsNullOrWhiteSpace(configuredKey) || !string.Equals(configuredKey, requestKey, StringComparison.Ordinal))
|
||||
return Unauthorized();
|
||||
|
||||
var normalizedOwnerType = ownerType.Trim().ToLowerInvariant();
|
||||
if (normalizedOwnerType is not ("character" or "location"))
|
||||
return BadRequest("Unsupported ownerType");
|
||||
|
||||
var groupedItems = await _inventory.GetByOwnersAsync(normalizedOwnerType, req.OwnerIds);
|
||||
var ownerIds = req.OwnerIds
|
||||
.Where(id => !string.IsNullOrWhiteSpace(id))
|
||||
.Select(id => id.Trim())
|
||||
.Distinct(StringComparer.Ordinal)
|
||||
.ToList();
|
||||
|
||||
var response = ownerIds.Select(ownerId => new OwnerInventorySummaryResponse
|
||||
{
|
||||
OwnerType = normalizedOwnerType,
|
||||
OwnerId = ownerId,
|
||||
Items = groupedItems.GetValueOrDefault(ownerId, []).Select(InventoryItemResponse.FromModel).ToList()
|
||||
}).ToList();
|
||||
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
[HttpGet("item-definitions")]
|
||||
[Authorize(Roles = "USER,SUPER")]
|
||||
public async Task<IActionResult> ListItemDefinitions()
|
||||
|
||||
Reference in New Issue
Block a user