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 Get() { return _service.GetAll().Result; } [HttpGet("{id}")] public ActionResult Get(Guid id) { var result = _service.GetById(id).Result; if (result is FailureResult fail) return NotFound(fail.Error); var success = (SuccessResult) result; return Ok(success.Value); } [HttpPost] public IActionResult Create(CreateTicketRequest request) { var result = _service.Create(request).Result; if (result is FailureResult fail) return BadRequest(fail.Error); var success = (SuccessResult) result; return CreatedAtAction( nameof(Get), new {id = success.Value.Id }, success.Value ); } }