using API.Dtos; using API.Errors; using Core.Entities.Identity; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; namespace API.Controllers { public class AccountController : BaseApiController { private readonly UserManager _userManager; private readonly SignInManager _signInManager; public AccountController(UserManager userManager, SignInManager signInManager) { _signInManager = signInManager; _userManager = userManager; } [HttpPost("login")] public async Task> Login(LoginDto loginDto) { var user = await _userManager.FindByEmailAsync(loginDto.Email); if (user == null) return Unauthorized(new ApiResponse(401)); var results = await _signInManager.CheckPasswordSignInAsync(user, loginDto.Password, false); if(!results.Succeeded) return Unauthorized(new ApiResponse(401)); return new UserDto { Email = user.Email, Token = "This will be a token", DisplayName = user.DisplayName }; } [HttpPost("register")] public async Task> Register(RegisterDto registerDto) { var user = new AppUser { DisplayName = registerDto.DisplayName, Email = registerDto.Email, UserName = registerDto.Email }; var results = await _userManager.CreateAsync(user, registerDto.Password); if(!results.Succeeded) return BadRequest(new ApiResponse(400)); return new UserDto { DisplayName = user.DisplayName, Token = "This will be a token", Email = user.Email }; } } }