Skip to content

Commit

Permalink
currentUser API
Browse files Browse the repository at this point in the history
  • Loading branch information
Tudor3510 committed Feb 1, 2025
1 parent 8d09ede commit 0d5c8ac
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 10 deletions.
6 changes: 6 additions & 0 deletions backend-MT/Controllers/UserController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,11 @@ public async Task<IActionResult> Login([FromBody] LoginDTO user)
return BadRequest(e.Message);
}
}

[HttpGet("currentUser")]
public async Task<IActionResult> currentUser()
{
return Ok(await _userService.GetCurrentUserInfoAsync());
}
}
}
4 changes: 3 additions & 1 deletion backend-MT/Service/UserService/IUserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,7 @@ public interface IUserService
{
Task<IdentityResult> RegisterAsync(RegisterDTO newUser);
Task<string> LoginAsync(LoginDTO login);
}
Task<UserDTO> GetCurrentUserInfoAsync();

}
}
42 changes: 33 additions & 9 deletions backend-MT/Service/UserService/UserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,26 @@
using System.Text;
using static backend_MT.Models.Roles.Role;
using backend_MT.Exceptions;
using AutoMapper;

namespace backend_MT.Services
{
public class UserService : IUserService
{
private readonly UserManager<User> _userManager;
private readonly SignInManager<User> _signInManager;
private readonly UserManager<User> _userManager;
private readonly SignInManager<User> _signInManager;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IMapper _mapper;

public UserService(UserManager<User> userManager, SignInManager<User> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
public UserService(UserManager<User> userManager, SignInManager<User> signInManager, IHttpContextAccessor httpContextAccessor, IMapper mapper)
{
_userManager = userManager;
_signInManager = signInManager;
_httpContextAccessor = httpContextAccessor;
_mapper = mapper;
}

public async Task<IdentityResult> RegisterAsync(RegisterDTO newUser)
public async Task<IdentityResult> RegisterAsync(RegisterDTO newUser)
{
var user = new User
{
Expand Down Expand Up @@ -99,5 +104,24 @@ private string GenerateToken(User user, IList<string> roles)

return new JwtSecurityTokenHandler().WriteToken(token);
}
}

public async Task<UserDTO> GetCurrentUserInfoAsync()
{
var userId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);

Check warning on line 110 in backend-MT/Service/UserService/UserService.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Dereference of a possibly null reference.
if (userId == null)
{
throw new NotFoundException("User not found");
}

var user = await _userManager.FindByIdAsync(userId);
if (user == null)
{
throw new NotFoundException("User not found");
}

return _mapper.Map<UserDTO>(user);
}


}
}

0 comments on commit 0d5c8ac

Please sign in to comment.