44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using LittleShop.DTOs;
|
|
using LittleShop.Services;
|
|
|
|
namespace LittleShop.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class AuthController : ControllerBase
|
|
{
|
|
private readonly IAuthService _authService;
|
|
private readonly ILogger<AuthController> _logger;
|
|
|
|
public AuthController(IAuthService authService, ILogger<AuthController> logger)
|
|
{
|
|
_authService = authService;
|
|
_logger = logger;
|
|
}
|
|
|
|
[HttpPost("login")]
|
|
public async Task<ActionResult<AuthResponseDto>> Login([FromBody] LoginDto loginDto)
|
|
{
|
|
try
|
|
{
|
|
_logger.LogInformation("Login attempt for user: {Username}", loginDto.Username);
|
|
|
|
var result = await _authService.LoginAsync(loginDto);
|
|
|
|
if (result != null)
|
|
{
|
|
_logger.LogInformation("Login successful for user: {Username}", loginDto.Username);
|
|
return Ok(result);
|
|
}
|
|
|
|
_logger.LogWarning("Login failed for user: {Username}", loginDto.Username);
|
|
return Unauthorized(new { message = "Invalid credentials" });
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error during login for user: {Username}", loginDto.Username);
|
|
return StatusCode(500, new { message = "An error occurred during login" });
|
|
}
|
|
}
|
|
} |