fix: add optional search parameter to GET invoices
This commit is contained in:
parent
8c781308e7
commit
161696269d
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue