63 lines
1.5 KiB
C#
63 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using TicketAppIncrArchi.Application.DTO;
|
|
using TicketAppIncrArchi.Application.Interfaces;
|
|
|
|
|
|
namespace TicketAppIncrArchi.API.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/tickets")]
|
|
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<TicketResponse> Get()
|
|
{
|
|
return _service.GetAll();
|
|
}
|
|
|
|
[HttpGet("{id}")]
|
|
public ActionResult<TicketResponse> Get(Guid id)
|
|
{
|
|
var result = _service.GetById(id);
|
|
|
|
if (result is FailureResult<TicketResponse> fail)
|
|
return NotFound(fail.Error);
|
|
|
|
var success = (SuccessResult<TicketResponse>) result;
|
|
return Ok(success.Value);
|
|
|
|
/*
|
|
if (ticket == null) return NotFound();
|
|
return Ok(ticket);
|
|
*/
|
|
}
|
|
|
|
[HttpPost]
|
|
public IActionResult Create(CreateTicketRequest request)
|
|
{
|
|
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
|
|
);
|
|
}
|
|
}
|