Add one long hierarchical method, change some return codes

This commit is contained in:
2025-10-09 20:30:39 +03:00
parent 96a5e764c2
commit 30cb0521f6
8 changed files with 108 additions and 11 deletions

View File

@@ -21,6 +21,7 @@ public class AuthController(UserManager<User> userManager, ITokenService tokenSe
[HttpPost("register")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status422UnprocessableEntity)]
public async Task<ActionResult<SlimUserDto>> Register(RegisterDto dto)
{
var user = new User
@@ -31,9 +32,18 @@ public class AuthController(UserManager<User> userManager, ITokenService tokenSe
var result = await userManager.CreateAsync(user, dto.Password);
await userManager.AddToRoleAsync(user, UserRoles.Regular);
Dictionary<string, object> idk = new()
{
["errors"] = result.Errors
};
if (!result.Succeeded)
{
return BadRequest(result.Errors);
return Problem(
statusCode: StatusCodes.Status422UnprocessableEntity,
extensions: idk
);
}
return Ok(SlimUserDto.FromUser(user));
}
@@ -46,6 +56,7 @@ public class AuthController(UserManager<User> userManager, ITokenService tokenSe
/// <response code="401">If the credentials are incorrect</response>
[HttpPost("login")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
public async Task<ActionResult<TokenDto>> Login(LoginDto dto)
{
@@ -66,6 +77,7 @@ public class AuthController(UserManager<User> userManager, ITokenService tokenSe
/// <response code="401">If refresh token is missing or is expired</response>
[HttpPost("refresh")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
public async Task<ActionResult<TokenDto>> Refresh(RefreshDto dto)
{
@@ -88,6 +100,7 @@ public class AuthController(UserManager<User> userManager, ITokenService tokenSe
/// <response code="401">If refresh token is missing or is expired</response>
[HttpPost("revoke")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
public async Task<ActionResult<TokenDto>> Revoke(RefreshDto dto)
{