Fix invoice search not working on transaction id

This commit is contained in:
nicolas.dorier
2018-11-02 14:26:13 +09:00
parent 1d7081d8b8
commit 05b0f6d0f7
2 changed files with 16 additions and 7 deletions

View File

@@ -1513,7 +1513,7 @@ namespace BTCPayServer.Tests
var ctx = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext(); var ctx = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext();
Assert.Equal(0, invoice.CryptoInfo[0].TxCount); Assert.Equal(0, invoice.CryptoInfo[0].TxCount);
Assert.True(invoice.MinerFees.ContainsKey("BTC")); Assert.True(invoice.MinerFees.ContainsKey("BTC"));
Assert.Equal(100m, invoice.MinerFees["BTC"].SatoshiPerBytes); Assert.Contains(invoice.MinerFees["BTC"].SatoshiPerBytes, new[] { 100.0m, 20.0m });
Eventually(() => Eventually(() =>
{ {
var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery() var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery()
@@ -1625,7 +1625,7 @@ namespace BTCPayServer.Tests
}, Facade.Merchant); }, Facade.Merchant);
invoiceAddress = BitcoinAddress.Create(invoice.BitcoinAddress, cashCow.Network); invoiceAddress = BitcoinAddress.Create(invoice.BitcoinAddress, cashCow.Network);
cashCow.SendToAddress(invoiceAddress, invoice.BtcDue + Money.Coins(1)); var txId = cashCow.SendToAddress(invoiceAddress, invoice.BtcDue + Money.Coins(1));
Eventually(() => Eventually(() =>
{ {
@@ -1633,6 +1633,13 @@ namespace BTCPayServer.Tests
Assert.Equal("paid", localInvoice.Status); Assert.Equal("paid", localInvoice.Status);
Assert.Equal(Money.Zero, localInvoice.BtcDue); Assert.Equal(Money.Zero, localInvoice.BtcDue);
Assert.Equal("paidOver", (string)((JValue)localInvoice.ExceptionStatus).Value); Assert.Equal("paidOver", (string)((JValue)localInvoice.ExceptionStatus).Value);
var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery()
{
StoreId = new[] { user.StoreId },
TextSearch = txId.ToString()
}).GetAwaiter().GetResult();
Assert.Single(textSearchResult);
}); });
cashCow.Generate(1); cashCow.Generate(1);

View File

@@ -295,6 +295,8 @@ namespace BTCPayServer.Services.Invoices
{ {
using (var tx = _Engine.GetTransaction()) using (var tx = _Engine.GetTransaction())
{ {
var terms = searchTerms.Split(null);
searchTerms = string.Join(' ', terms.Select(t => t.Length > 50 ? t.Substring(0, 50) : t).ToArray());
return tx.TextSearch("InvoiceSearch").Block(searchTerms) return tx.TextSearch("InvoiceSearch").Block(searchTerms)
.GetDocumentIDs() .GetDocumentIDs()
.Select(id => Encoders.Base58.EncodeData(id)) .Select(id => Encoders.Base58.EncodeData(id))