#27 added userTransactions

This commit is contained in:
Dominic Villemure
2024-04-22 15:55:49 -04:00
parent cbde9838d1
commit b63d53f109
17 changed files with 696 additions and 28 deletions

View File

@@ -1,25 +1,31 @@
using Hutopy.Application.Common.Interfaces;
using Hutopy.Domain.Entities;
namespace Hutopy.Application.Stripe.Commands;
public abstract record CreateSessionCheckoutCommand : IRequest<string>
public record CreateSessionCheckoutCommand : IRequest<string>
{
public required string CreatorId { get; init; }
public required int Price { get; init; }
public string Currency { get; init; } = "cad";
public string Currency { get; init; } = "CAD";
public string TipMessage { get; init; } = string.Empty;
}
public class CreateSessionCheckoutCommandHandler(
IApplicationDbContext context,
IStripeService stripeService)
IApplicationDbContext dbContext,
IStripeService stripeService
)
: IRequestHandler<CreateSessionCheckoutCommand, string>
{
private readonly IApplicationDbContext _context = context;
public async Task<string> Handle(CreateSessionCheckoutCommand request, CancellationToken cancellationToken)
{
var stripeSecret = await stripeService.CreateCheckoutSession(request.Price, request.Currency);
var userTransaction = new UserTransaction
{
Currency = request.Currency, Amount = request.Price, TipMessage = request.TipMessage, ApplicationUserId = request.CreatorId
};
await dbContext.UserTransactions.AddAsync(userTransaction, cancellationToken);
return stripeSecret;
}