Skip to content

Commit fe34264

Browse files
committed
#185 - Finalizando a API de Pedidos
1 parent f8bcbe3 commit fe34264

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

src/services/JSE.Pedido.API/Configuration/DependencyInjectionConfig.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
using JSE.Core.Mediator;
1+
using FluentValidation.Results;
2+
using JSE.Core.Mediator;
3+
using JSE.Pedido_API.Application.Events;
24
using JSE.Pedido_API.Application.Queries;
5+
using JSE.Pedidos.API.Application.Commands;
6+
using JSE.Pedidos.API.Application.Queries;
37
using JSE.Pedidos.Domain;
8+
using JSE.Pedidos.Domain.Pedidos;
49
using JSE.Pedidos.Infra.Data;
510
using JSE.Pedidos.Infra.Data.Repository;
611
using JSE.WebAPI.Core.User;
12+
using MediatR;
13+
using NSE.Pedidos.API.Application.Commands;
714
using System.Reflection;
815

916
namespace JSE.Pedidos.API.Configuration
@@ -17,16 +24,19 @@ public static void RegisterServices(this IServiceCollection services)
1724
services.AddScoped<IAspNetUser, AspNetUser>();
1825

1926
// Commands
27+
services.AddScoped<IRequestHandler<AdicionarPedidoCommand, ValidationResult>, PedidoCommandHandler>();
2028

2129
// Events
22-
30+
services.AddScoped<INotificationHandler<PedidoRealizadoEvent>, PedidoEventHandler>();
2331

2432
// Application
2533
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()));
2634
services.AddScoped<IMediatorHandler, MediatorHandler>();
2735
services.AddScoped<IVoucherQueries, VoucherQueries>();
36+
services.AddScoped<IPedidoQueries, PedidoQueries>();
2837

2938
// Data
39+
services.AddScoped<IPedidoRepository, PedidoRepository>();
3040
services.AddScoped<IVoucherRepository, VoucherRepository>();
3141
services.AddScoped<PedidosContext>();
3242

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using JSE.Core.Mediator;
2+
using JSE.Pedidos.API.Application.Commands;
3+
using JSE.Pedidos.API.Application.Queries;
4+
using JSE.WebAPI.Core.Controllers;
5+
using JSE.WebAPI.Core.User;
6+
using Microsoft.AspNetCore.Authorization;
7+
using Microsoft.AspNetCore.Mvc;
8+
9+
namespace JSE.Pedido_API.Controllers
10+
{
11+
[Authorize]
12+
public class PedidoController : MainController
13+
{
14+
private readonly IMediatorHandler _mediator;
15+
private readonly IAspNetUser _user;
16+
private readonly IPedidoQueries _pedidoQueries;
17+
18+
public PedidoController(IMediatorHandler mediator,
19+
IAspNetUser user,
20+
IPedidoQueries pedidoQueries)
21+
{
22+
_mediator = mediator;
23+
_user = user;
24+
_pedidoQueries = pedidoQueries;
25+
}
26+
27+
[HttpPost("pedido")]
28+
public async Task<IActionResult> AdicionarPedido(AdicionarPedidoCommand pedido)
29+
{
30+
pedido.ClienteId = _user.ObterUserId();
31+
return CustomResponse(await _mediator.SendCommand(pedido));
32+
}
33+
34+
[HttpGet("pedido/ultimo")]
35+
public async Task<IActionResult> UltimoPedido()
36+
{
37+
var pedido = await _pedidoQueries.ObterUltimoPedido(_user.ObterUserId());
38+
39+
return pedido == null ? NotFound() : CustomResponse(pedido);
40+
}
41+
42+
[HttpGet("pedido/lista-cliente")]
43+
public async Task<IActionResult> ListaPorCliente()
44+
{
45+
var pedidos = await _pedidoQueries.ObterListaPorClienteId(_user.ObterUserId());
46+
47+
return pedidos == null ? NotFound() : CustomResponse(pedidos);
48+
}
49+
}
50+
}
51+

0 commit comments

Comments
 (0)