using Asp.Versioning; using Baya.Application.Features.Admin.Commands.AddAdminCommand; using Baya.Application.Features.Admin.Queries.GetToken; using Baya.Application.Models.Jwt; using Baya.WebFramework.Attributes; using Baya.WebFramework.BaseController; using Mediator; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Baya.Web.Api.Controllers.V1.Admin { [ApiVersion("1")] [ApiController] [Route("api/v{version:apiVersion}/AdminManager")] public class AdminManagerController(ISender sender) : BaseController { [HttpPost("Login")] [ProducesOkApiResponseType] public async Task AdminLogin(AdminGetTokenQuery model) { var query = await sender.Send(model); return base.OperationResult(query); } [Authorize(Roles = "admin")] [HttpPost("NewAdmin")] [ProducesOkApiResponseType] public async Task AddNewAdmin(AddAdminCommand model) { var commandResult = await sender.Send(model); return base.OperationResult(commandResult); } } }