using Diligent.WebAPI.Contracts.DTOs.User; using Diligent.WebAPI.Data.Entities; namespace Diligent.WebAPI.Host.Controllers.V1 { [ApiVersion("1.0")] [Route("v{version:apiVersion}/users")] [ApiController] public class UsersController : ControllerBase { private readonly IUserService _userService; private readonly IMapper _mapper; public UsersController(IUserService userService, IMapper mapper) { _userService = userService; _mapper = mapper; } [Authorize] [HttpGet] public async Task GetAll() { return Ok(_mapper.Map, IEnumerable>(await _userService.GetAll())); } [Authorize] [HttpPost("toggleEnable/{id}")] public async Task ToggleEnable(int id) { var user = await _userService.GetById(id); if (user == null) { return BadRequest("User not found"); } await _userService.ToggleEnable(user); return Ok(user.Id); } [Authorize] [HttpDelete("{id}")] public async Task DeleteUser(int id) { var user = await _userService.GetById(id); if (user == null) { return BadRequest("User not found"); } await _userService.RemoveUser(user); return Ok(user.Id); } //[Authorize] [HttpPost] public async Task CreateUser([FromBody] CreateUserRequestDto model) { await _userService.CreateUser(model); return Ok(); } } }