/
korotkova_user
/
techshopapi
Обзор
Документация
Войти
/
korotkova_user
/
techshopapi
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Controllers/UsersController.cs
144 строки
4 KB
arian438
Первый коммит: проект techshopAPI
18 фев 2026, 10:28
18 фев 2026, 10:28
e998fa9
Код
Авторство
О чём код?
using Microsoft.AspNetCore.Mvc; using techshopAPI.DTOs; using techshopAPI.Services; namespace techshopAPI.Controllers { [Route("api/[controller]")] [ApiController] public class UsersController : ControllerBase { private readonly IUserService _userService; private readonly ILogger<UsersController> _logger; public UsersController(IUserService userService, ILogger<UsersController> logger) { _userService = userService; _logger = logger; } [HttpGet] public async Task<ActionResult<IEnumerable<UserDto>>> GetUsers() { try { var users = await _userService.GetAllUsersAsync(); return Ok(users); } catch (Exception ex) { _logger.LogError(ex, "Error getting all users"); return StatusCode(500, "Internal server error"); } } [HttpGet("{id}")] public async Task<ActionResult<UserDto>> GetUser(int id) { try { var user = await _userService.GetUserByIdAsync(id); if (user == null) { return NotFound($"User with ID {id} not found"); } return Ok(user); } catch (Exception ex) { _logger.LogError(ex, "Error getting user with ID {Id}", id); return StatusCode(500, "Internal server error"); } } [HttpPost] public async Task<ActionResult<UserDto>> CreateUser(CreateUserDto createDto) { try { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = await _userService.CreateUserAsync(createDto); return CreatedAtAction(nameof(GetUser), new { id = user.ID }, user); } catch (Exception ex) { _logger.LogError(ex, "Error creating user"); return StatusCode(500, "Internal server error"); } } [HttpPut("{id}")] public async Task<IActionResult> UpdateUser(int id, UpdateUserDto updateDto) { try { if (!ModelState.IsValid) { return BadRequest(ModelState); } var updatedUser = await _userService.UpdateUserAsync(id, updateDto); if (updatedUser == null) { return NotFound($"User with ID {id} not found"); } return Ok(updatedUser); } catch (Exception ex) { _logger.LogError(ex, "Error updating user with ID {Id}", id); return StatusCode(500, "Internal server error"); } } [HttpDelete("{id}")] public async Task<IActionResult> DeleteUser(int id) { try { var result = await _userService.DeleteUserAsync(id); if (!result) { return NotFound($"User with ID {id} not found"); } return NoContent(); } catch (Exception ex) { _logger.LogError(ex, "Error deleting user with ID {Id}", id); return StatusCode(500, "Internal server error"); } } [HttpPost("login")] public async Task<ActionResult<UserDto>> Login(LoginDto loginDto) { try { var user = await _userService.AuthenticateAsync(loginDto.Login, loginDto.Password); if (user == null) { return Unauthorized("Invalid login or password"); } return Ok(user); } catch (Exception ex) { _logger.LogError(ex, "Error during login"); return StatusCode(500, "Internal server error"); } } } }