Add label filter for onchain tx API endpoint (#3588)

* Add label filter for onchain tx API endpoint

close #3587

* Add Swagger docs

* Add test for filtering by transaction label
This commit is contained in:
Umar Bolatov
2022-04-17 19:20:15 -07:00
committed by GitHub
parent c1dbe235dc
commit 7e6a2d08e2
5 changed files with 36 additions and 2 deletions

View File

@@ -173,6 +173,7 @@ namespace BTCPayServer.Controllers.Greenfield
string storeId,
string cryptoCode,
[FromQuery] TransactionStatus[]? statusFilter = null,
[FromQuery] string? labelFilter = null,
[FromQuery] int skip = 0,
[FromQuery] int limit = int.MaxValue
)
@@ -202,6 +203,23 @@ namespace BTCPayServer.Controllers.Greenfield
filteredFlatList.AddRange(txs.ReplacedTransactions.Transactions);
}
if (labelFilter != null)
{
filteredFlatList = filteredFlatList.Where(information =>
{
walletTransactionsInfoAsync.TryGetValue(information.TransactionId.ToString(), out var transactionInfo);
if (transactionInfo != null)
{
return transactionInfo.Labels.ContainsKey(labelFilter);
}
else
{
return false;
}
}).ToList();
}
var result = filteredFlatList.Skip(skip).Take(limit).Select(information =>
{
walletTransactionsInfoAsync.TryGetValue(information.TransactionId.ToString(), out var transactionInfo);