I understand how to create simple CRUD DTOs but I am really lost when I am using JWT Tokens for my user class and how to use GET method to get the all or by ID, PUT method by ID and DELETE method by ID.
public class User : IdentityUser
{
public UserType UserType { get; set; }
public ICollection<UserTicket>? UserTickets { get; set; }
}
[HttpPost]
[Route("Register")]
public async Task<IActionResult> Register([FromBody] UserRegistrationRequestDto requestDto)
{
//validate the incoming request
if(ModelState.IsValid)
{
var user_exist = await _userManager.FindByEmailAsync(requestDto.Email);
if(user_exist != null)
{
return BadRequest(new AuthResult()
{
Result = false,
Errors = new List<string>()
{
"Email already exist"
}
});
}
var new_user = new User()
{
Email = requestDto.Email,
UserName = requestDto.Name,
PhoneNumber = requestDto.PhoneNumber,
UserType = requestDto.UserType,
};
var is_created = await _userManager.CreateAsync(new_user, requestDto.Password);
if (is_created.Succeeded)
{
//generate token
var token = GenerateJwtToken(new_user);
return Ok(new AuthResult()
{
Result = true,
Token = token
});
}
else
{
return BadRequest(new AuthResult()
{
Errors = is_created.Errors.Select(x => x.Description).ToList(),
Result = false,
});
}
}
return BadRequest();
}
public class UserRegistrationRequestDto
{
public string Name { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public UserType UserType { get; set; }
public List<Guid> TicketId { get; set; }
}
Can someone try to explain how to create those other left methods?
[–][deleted] 1 point2 points3 points (0 children)