Skip to content

Commit 288caa4

Browse files
Merge branch 'develop' into feature/sp7/#241
2 parents c79fe0c + 8b7b404 commit 288caa4

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

src/building blocks/JSE.Core/Messages/Integration/PedidoIniciadoIntegrationEvent.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ public class PedidoIniciadoIntegrationEvent : IntegrationEvent
1111
public string NumeroCartao { get; set; }
1212
public string MesAnoVencimento { get; set; }
1313
public string CVV { get; set; }
14+
1415
}
1516
}

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

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
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;
46
using JSE.Pedidos.API.Application.DTO;
57
using JSE.Pedidos.Domain;
@@ -14,12 +16,15 @@ public class PedidoCommandHandler : CommandHandler,
1416
{
1517
private readonly IPedidoRepository _pedidoRepository;
1618
private readonly IVoucherRepository _voucherRepository;
19+
private readonly IMessageBus _bus;
1720

18-
public PedidoCommandHandler(IVoucherRepository voucherRepository,
19-
IPedidoRepository pedidoRepository)
21+
public PedidoCommandHandler(IVoucherRepository voucherRepository,
22+
IPedidoRepository pedidoRepository,
23+
IMessageBus bus)
2024
{
2125
_voucherRepository = voucherRepository;
2226
_pedidoRepository = pedidoRepository;
27+
_bus = bus;
2328
}
2429

2530
public async Task<ValidationResult> Handle(AdicionarPedidoCommand message, CancellationToken cancellationToken)
@@ -37,7 +42,7 @@ public async Task<ValidationResult> Handle(AdicionarPedidoCommand message, Cance
3742
if (!ValidarPedido(pedido)) return ValidationResult;
3843

3944
// Processar pagamento
40-
if (!ProcessarPagamento(pedido)) return ValidationResult;
45+
if (! await ProcessarPagamento(pedido, message)) return ValidationResult;
4146

4247
// Se pagamento tudo ok!
4348
pedido.AutorizarPedido();
@@ -122,8 +127,29 @@ private bool ValidarPedido(Pedido pedido)
122127
return true;
123128
}
124129

125-
public bool ProcessarPagamento(Pedido pedido)
130+
public async Task<bool> ProcessarPagamento(Pedido pedido, AdicionarPedidoCommand message)
126131
{
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+
127153
return true;
128154
}
129155
}

0 commit comments

Comments
 (0)