fix: add optional search parameter to GET invoices

This commit is contained in:
javiermengual 2026-01-29 13:26:54 +01:00
parent 8c781308e7
commit 161696269d
2 changed files with 14 additions and 5 deletions

View File

@ -26,9 +26,10 @@ public class InvoicesController : ControllerBase
public async Task<ActionResult<List<InvoiceDto>>> GetInvoices( public async Task<ActionResult<List<InvoiceDto>>> GetInvoices(
[FromQuery] int limit = 50, [FromQuery] int limit = 50,
[FromQuery] [Range(1, int.MaxValue)] int page = 1, [FromQuery] [Range(1, int.MaxValue)] int page = 1,
[FromQuery] string? status = null) [FromQuery] string? status = null,
[FromQuery] [StringLength(100)] string? search = null)
{ {
var invoices = await _invoiceService.GetInvoicesAsync(limit, page, status); var invoices = await _invoiceService.GetInvoicesAsync(limit, page, status, search);
return Ok(invoices); return Ok(invoices);
} }

View File

@ -19,7 +19,8 @@ public class InvoiceService(IDolibarrApiClient apiClient)
public async Task<List<InvoiceDto>> GetInvoicesAsync( public async Task<List<InvoiceDto>> GetInvoicesAsync(
int limit = 50, int limit = 50,
int page = 1, int page = 1,
string? status = null) string? status = null,
string? search = null)
{ {
// empieza por 1 para el frontend // empieza por 1 para el frontend
var endpoint = $"invoices?limit={limit}&page={page - 1}"; var endpoint = $"invoices?limit={limit}&page={page - 1}";
@ -29,6 +30,13 @@ public class InvoiceService(IDolibarrApiClient apiClient)
endpoint += $"&status={status}"; endpoint += $"&status={status}";
} }
if (!string.IsNullOrWhiteSpace(search))
{
search=search.Trim().ToUpperInvariant();
var filter = $"(t.ref:like:'{search}%')";
endpoint += $"&sqlfilters={Uri.EscapeDataString(filter)}";
}
var dataList = await apiClient.GetCollectionAsync<InvoiceResponse>(endpoint); var dataList = await apiClient.GetCollectionAsync<InvoiceResponse>(endpoint);
return dataList.Select(InvoiceMapper.MapToInvoiceDto).ToList(); return dataList.Select(InvoiceMapper.MapToInvoiceDto).ToList();
} }