MCPcopy Create free account
hub / github.com/TryCatchLearn/Restore-v2 / AccountController

Class AccountController

API/Controllers/AccountController.cs:11–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9namespace API.Controllers;
10
11public class AccountController(SignInManager<User> signInManager) : BaseApiController
12{
13 [HttpPost("register")]
14 public async Task<ActionResult> RegisterUser(RegisterDto registerDto)
15 {
16 var user = new User{UserName = registerDto.Email, Email = registerDto.Email};
17
18 var result = await signInManager.UserManager.CreateAsync(user, registerDto.Password);
19
20 if (!result.Succeeded)
21 {
22 foreach (var error in result.Errors)
23 {
24 ModelState.AddModelError(error.Code, error.Description);
25 }
26
27 return ValidationProblem();
28 }
29
30 await signInManager.UserManager.AddToRoleAsync(user, "Member");
31
32 return Ok();
33 }
34
35 [HttpGet("user-info")]
36 public async Task<ActionResult> GetUserInfo()
37 {
38 if (User.Identity?.IsAuthenticated == false) return NoContent();
39
40 var user = await signInManager.UserManager.GetUserAsync(User);
41
42 if (user == null) return Unauthorized();
43
44 var roles = await signInManager.UserManager.GetRolesAsync(user);
45
46 return Ok(new
47 {
48 user.Email,
49 user.UserName,
50 Roles = roles
51 });
52 }
53
54 [HttpPost("logout")]
55 public async Task<ActionResult> Logout()
56 {
57 await signInManager.SignOutAsync();
58
59 return NoContent();
60 }
61
62 [Authorize]
63 [HttpPost("address")]
64 public async Task<ActionResult<Address>> CreateOrUpdateAddress(Address address)
65 {
66 var user = await signInManager.UserManager.Users
67 .Include(x => x.Address)
68 .FirstOrDefaultAsync(x => x.UserName == User.Identity!.Name);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected