Skip to content

Commit 5d7f07e

Browse files
committed
#240 - Solicitar processamento de pagamento - feature/sp7/#240
1 parent 6405647 commit 5d7f07e

File tree

2 files changed

+45
-5
lines changed

2 files changed

+45
-5
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace JSE.Core.Messages.Integration
2+
{
3+
public class PedidoIniciadoIntegrationEvent : IntegrationEvent
4+
{
5+
public Guid ClienteId { get; set; }
6+
public Guid PedidoId { get; set; }
7+
public int TipoPagamento { get; set; }
8+
public decimal Valor { get; set; }
9+
public string NomeCartao { get; set; }
10+
public string NumeroCartao { get; set; }
11+
public string MesAnoVencimento { get; set; }
12+
public string CVV { get; set; }
13+
14+
}
15+
}

src/services/JSE.Pedido.API/Application/Commands/PedidoCommandHandler.cs

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
using FluentValidation.Results;
22
using JSE.Core.Messages;
3+
using JSE.Core.Messages.Integration;
4+
using JSE.MessageBus;
35
using JSE.Pedido_API.Application.Events;
4-
using JSE.Pedidos.API.Application.Commands;
56
using JSE.Pedidos.API.Application.DTO;
67
using JSE.Pedidos.Domain;
78
using JSE.Pedidos.Domain.Pedidos;
@@ -15,12 +16,15 @@ public class PedidoCommandHandler : CommandHandler,
1516
{
1617
private readonly IPedidoRepository _pedidoRepository;
1718
private readonly IVoucherRepository _voucherRepository;
19+
private readonly IMessageBus _bus;
1820

19-
public PedidoCommandHandler(IVoucherRepository voucherRepository,
20-
IPedidoRepository pedidoRepository)
21+
public PedidoCommandHandler(IVoucherRepository voucherRepository,
22+
IPedidoRepository pedidoRepository,
23+
IMessageBus bus)
2124
{
2225
_voucherRepository = voucherRepository;
2326
_pedidoRepository = pedidoRepository;
27+
_bus = bus;
2428
}
2529

2630
public async Task<ValidationResult> Handle(AdicionarPedidoCommand message, CancellationToken cancellationToken)
@@ -38,7 +42,7 @@ public async Task<ValidationResult> Handle(AdicionarPedidoCommand message, Cance
3842
if (!ValidarPedido(pedido)) return ValidationResult;
3943

4044
// Processar pagamento
41-
if (!ProcessarPagamento(pedido)) return ValidationResult;
45+
if (! await ProcessarPagamento(pedido, message)) return ValidationResult;
4246

4347
// Se pagamento tudo ok!
4448
pedido.AutorizarPedido();
@@ -123,8 +127,29 @@ private bool ValidarPedido(Pedido pedido)
123127
return true;
124128
}
125129

126-
public bool ProcessarPagamento(Pedido pedido)
130+
public async Task<bool> ProcessarPagamento(Pedido pedido, AdicionarPedidoCommand message)
127131
{
132+
var pedidoIniciado = new PedidoIniciadoIntegrationEvent
133+
{
134+
PedidoId = pedido.Id,
135+
ClienteId = pedido.ClienteId,
136+
Valor = pedido.ValorTotal,
137+
TipoPagamento = 1, // Fixo, alterar se tiver mais tipos
138+
NomeCartao = message.NomeCartao,
139+
MesAnoVencimento = message.ExpiracaoCartao,
140+
CVV = message.CvvCartao
141+
};
142+
143+
var result = await _bus
144+
.RequestAsync<PedidoIniciadoIntegrationEvent, ResponseMessage>(pedidoIniciado);
145+
146+
if (result.ValidationResult.IsValid) return true;
147+
148+
foreach (var erro in result.ValidationResult.Errors)
149+
{
150+
AddError(erro.ErrorMessage);
151+
}
152+
128153
return true;
129154
}
130155
}

0 commit comments

Comments
 (0)