using API.Helpers.Base; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace API.Controllers; [ApiController] [Route("api/[controller]")] [Authorize] // [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] public class BaseController : ControllerBase { protected IActionResult HandleResult(OperationResult result) { if (!result.Succeeded) return HandleStatusCode(result.StatusCode, result); return Ok(result); } protected IActionResult HandleResult(OperationResult result) { if (!result.Succeeded) return HandleStatusCode(result.StatusCode, null!); return Ok(result); } private IActionResult HandleStatusCode(int statusCode, object result) { return statusCode switch { 401 => Unauthorized(), 403 => Forbid(), 404 => NotFound(result), 409 => Conflict(result), _ => BadRequest(result), }; } }