Add CollectedByUserId to payment DTOs as auth workaround

This commit is contained in:
2026-09-03 17:20:12 +05:30
parent ad74074771
commit c962ed9425
3 changed files with 15 additions and 4 deletions
@@ -29,7 +29,7 @@ public class FlatPaymentController(PaymentService service) : ControllerBase
{ {
try try
{ {
var inner = new CreatePaymentRequest(request.Amount, request.Method); var inner = new CreatePaymentRequest(request.Amount, request.Method, request.CollectedByUserId);
var result = await service.CreateAsync(request.SaleId, inner, ct); var result = await service.CreateAsync(request.SaleId, inner, ct);
return result is null ? NotFound(new { error = "Sale not found or access denied" }) : Ok(result); return result is null ? NotFound(new { error = "Sale not found or access denied" }) : Ok(result);
} }
+10 -2
View File
@@ -2,9 +2,17 @@ using Distribution.Models;
namespace Distribution.Features.Payment; namespace Distribution.Features.Payment;
public record CreatePaymentRequest(decimal Amount, PaymentMethod Method); public record CreatePaymentRequest(
decimal Amount,
PaymentMethod Method,
// TEMPORARY: auth middleware doesn't resolve a logged-in user yet — see testbug.md #28.
Guid? CollectedByUserId = null);
public record CreateFlatPaymentRequest(Guid SaleId, decimal Amount, PaymentMethod Method); public record CreateFlatPaymentRequest(
Guid SaleId,
decimal Amount,
PaymentMethod Method,
Guid? CollectedByUserId = null);
public record PaymentResponse( public record PaymentResponse(
Guid Id, Guid Id,
@@ -44,7 +44,10 @@ public class PaymentService(
if (sale.Status == SaleStatus.Cancelled) if (sale.Status == SaleStatus.Cancelled)
throw new InvalidOperationException("Cannot record a payment against a cancelled sale"); throw new InvalidOperationException("Cannot record a payment against a cancelled sale");
var userId = currentUser.UserId ?? throw new UnauthorizedAccessException(); // TEMPORARY: currentUser.UserId is always unset due to the broken auth middleware
// (testbug.md #28) — fall back to the explicitly supplied user until that's fixed.
var userId = currentUser.UserId ?? request.CollectedByUserId
?? throw new InvalidOperationException("CollectedByUserId is required while auth is unavailable");
var payment = new Models.Payment var payment = new Models.Payment
{ {