mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 14:34:23 +01:00
Do not retrieve all payouts in GetPullPayment every time
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user