Reputation: 51
I have an AuthController
class with a register Post request:
public class AuthController(UserManager<User> userManager, IMapper mapper) : BaseApiController
{
[HttpPost("register")] // api/auth/register
public async Task<ActionResult> Register(RegisterDto registerDto)
{
if (await UserExist(registerDto.UserName))
{
return BadRequest("Username already exist");
}
var user = mapper.Map<User>(registerDto);
var result = await userManager.CreateAsync(user, registerDto.Password);
if (!result.Succeeded)
{
return BadRequest(result.Errors);
}
return CreatedAtAction(nameof(UsersController.GetUserById), new { id = user.Id }, user);
}
}
I also have a UsersController
with the following method:
public class UsersController(IUnitOfWork unitOfWork) : BaseApiController
{
[HttpGet("{userId:int}")] //api/user/:id
public async Task<ActionResult<UserDto>> GetUserById(int userId)
{
var user = await unitOfWork.UserRepository.GetUserByIdAsync(userId);
if (user == null) return NotFound("User not found");
return Ok(user);
}
}
How exactly am I supposed to create the Created Response for the register method.
Upvotes: 1
Views: 25
Reputation: 51
The fix:
CreatedAtAction(nameof(UsersController.GetUserById), "Users", new {userId = user.Id}, user);
Upvotes: 0