mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-27 02:37:08 +01:00
Do not retrieve all payouts in GetPullPayment every time
This commit is contained in:
parent
cd9feccf6e
commit
371acc84a8
2 changed files with 16 additions and 12 deletions
|
@ -132,7 +132,7 @@ namespace BTCPayServer.Controllers.GreenField
|
|||
StoreId = storeId,
|
||||
PaymentMethodIds = paymentMethods
|
||||
});
|
||||
var pp = await _pullPaymentService.GetPullPayment(ppId);
|
||||
var pp = await _pullPaymentService.GetPullPayment(ppId, false);
|
||||
return this.Ok(CreatePullPaymentData(pp));
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@ namespace BTCPayServer.Controllers.GreenField
|
|||
{
|
||||
if (pullPaymentId is null)
|
||||
return PullPaymentNotFound();
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId);
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId, false);
|
||||
if (pp is null)
|
||||
return PullPaymentNotFound();
|
||||
return Ok(CreatePullPaymentData(pp));
|
||||
|
@ -177,7 +177,7 @@ namespace BTCPayServer.Controllers.GreenField
|
|||
{
|
||||
if (pullPaymentId is null)
|
||||
return PullPaymentNotFound();
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId);
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId, true);
|
||||
if (pp is null)
|
||||
return PullPaymentNotFound();
|
||||
var payouts = pp.Payouts .Where(p => p.State != PayoutState.Cancelled || includeCancelled).ToList();
|
||||
|
@ -193,7 +193,7 @@ namespace BTCPayServer.Controllers.GreenField
|
|||
if (payoutId is null)
|
||||
return PayoutNotFound();
|
||||
await using var ctx = _dbContextFactory.CreateContext();
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId);
|
||||
var pp = await _pullPaymentService.GetPullPayment(pullPaymentId, true);
|
||||
if (pp is null)
|
||||
return PullPaymentNotFound();
|
||||
var payout = pp.Payouts.FirstOrDefault(p => p.Id == payoutId);
|
||||
|
|
|
@ -121,10 +121,14 @@ namespace BTCPayServer.HostedServices
|
|||
return o.Id;
|
||||
}
|
||||
|
||||
public async Task<Data.PullPaymentData> GetPullPayment(string pullPaymentId)
|
||||
public async Task<Data.PullPaymentData> GetPullPayment(string pullPaymentId, bool includePayouts)
|
||||
{
|
||||
await using var ctx = _dbContextFactory.CreateContext();
|
||||
return await ctx.PullPayments.Include(data => data.Payouts).FirstOrDefaultAsync(data => data.Id == pullPaymentId);
|
||||
IQueryable<Data.PullPaymentData> query = ctx.PullPayments;
|
||||
if (includePayouts)
|
||||
query = query.Include(data => data.Payouts);
|
||||
|
||||
return await query.FirstOrDefaultAsync(data => data.Id == pullPaymentId);
|
||||
}
|
||||
|
||||
class PayoutRequest
|
||||
|
@ -212,7 +216,7 @@ namespace BTCPayServer.HostedServices
|
|||
}
|
||||
foreach (IPayoutHandler payoutHandler in _payoutHandlers)
|
||||
{
|
||||
await payoutHandler.BackgroundCheck(o);
|
||||
await payoutHandler.BackgroundCheck(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue