feat: DTOs, Result Type
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using TicketAppIncrArchi.Application.DTO;
|
||||
using TicketAppIncrArchi.Application.Interfaces;
|
||||
using TicketAppIncrArchi.Domain.Entities;
|
||||
|
||||
|
||||
namespace TicketAppIncrArchi.API.Controllers;
|
||||
|
||||
@@ -9,20 +10,45 @@ namespace TicketAppIncrArchi.API.Controllers;
|
||||
public class TicketsController : ControllerBase
|
||||
{
|
||||
|
||||
//TicketService contain the list of tickets and
|
||||
//function to retrieve them
|
||||
private readonly ITicketService _service;
|
||||
|
||||
public TicketsController(ITicketService service)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
[HttpGet]
|
||||
public IEnumerable<Ticket> Get() => _service.GetAll();
|
||||
public IEnumerable<TicketResponse> Get()
|
||||
{
|
||||
return _service.GetAll();
|
||||
}
|
||||
|
||||
[HttpGet("{id}")]
|
||||
public ActionResult<TicketResponse> Get(Guid id)
|
||||
{
|
||||
var ticket = _service.GetById(id);
|
||||
if (ticket == null) return NotFound();
|
||||
return Ok(ticket);
|
||||
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public IActionResult Create(Ticket ticket)
|
||||
public IActionResult Create(CreateTicketRequest request)
|
||||
{
|
||||
var created = _service.Create(ticket);
|
||||
return CreatedAtAction(nameof(Get), new {id=created.Id}, created);
|
||||
var result = _service.Create(request);
|
||||
|
||||
if (result is FailureResult<CreateTicketResponse> fail)
|
||||
return BadRequest(fail.Error);
|
||||
|
||||
var success = (SuccessResult<CreateTicketResponse>) result;
|
||||
|
||||
return CreatedAtAction(
|
||||
nameof(Get),
|
||||
new {id = success.Value.Id },
|
||||
success.Value
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user