using Application.DataTransferObjects.Feedback; using Application.Interfaces; using Asp.Versioning; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Api.Controllers.v1 { [Route("api/v{version:apiVersion}/[controller]")] [ApiController] [ApiVersion("1.0")] [Authorize] public class FeedbacksController(ILogger logger, IGitHubService gitHubService) : ControllerBase { [HttpPost] public async Task> PostFeedback([FromForm] FeedbackDto feedbackDto) { try { var issue = await gitHubService.CreateIssueAsync(feedbackDto); return Ok(new {url = issue.HtmlUrl}); } catch (Exception e) { logger.LogError(e, e.Message); return StatusCode(StatusCodes.Status500InternalServerError); } } } }