mirror of
https://github.com/bitwarden/server.git
synced 2024-11-22 12:15:36 +01:00
catch sql FK violations on webhook tx creation
This commit is contained in:
parent
22c049c9c5
commit
1dc22f61d1
@ -4,6 +4,7 @@ using Bit.Core.Repositories;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -64,18 +65,23 @@ namespace Bit.Billing.Controllers
|
||||
var ids = sale.GetIdsFromCustom();
|
||||
if(ids.Item1.HasValue || ids.Item2.HasValue)
|
||||
{
|
||||
await _transactionRepository.CreateAsync(new Core.Models.Table.Transaction
|
||||
try
|
||||
{
|
||||
Amount = sale.Amount.TotalAmount,
|
||||
CreationDate = sale.CreateTime,
|
||||
OrganizationId = ids.Item1,
|
||||
UserId = ids.Item2,
|
||||
Type = TransactionType.Charge,
|
||||
Gateway = GatewayType.PayPal,
|
||||
GatewayId = sale.Id,
|
||||
PaymentMethodType = PaymentMethodType.PayPal,
|
||||
Details = sale.Id
|
||||
});
|
||||
await _transactionRepository.CreateAsync(new Core.Models.Table.Transaction
|
||||
{
|
||||
Amount = sale.Amount.TotalAmount,
|
||||
CreationDate = sale.CreateTime,
|
||||
OrganizationId = ids.Item1,
|
||||
UserId = ids.Item2,
|
||||
Type = TransactionType.Charge,
|
||||
Gateway = GatewayType.PayPal,
|
||||
GatewayId = sale.Id,
|
||||
PaymentMethodType = PaymentMethodType.PayPal,
|
||||
Details = sale.Id
|
||||
});
|
||||
}
|
||||
// Catch foreign key violations because user/org could have been deleted.
|
||||
catch(SqlException e) when(e.Number == 547) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ using Microsoft.Extensions.Options;
|
||||
using Stripe;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
@ -227,7 +228,12 @@ namespace Bit.Billing.Controllers
|
||||
return new OkResult();
|
||||
}
|
||||
|
||||
await _transactionRepository.CreateAsync(tx);
|
||||
try
|
||||
{
|
||||
await _transactionRepository.CreateAsync(tx);
|
||||
}
|
||||
// Catch foreign key violations because user/org could have been deleted.
|
||||
catch(SqlException e) when(e.Number == 547) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user