Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

UsersController.cs 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. namespace Diligent.WebAPI.Host.Controllers.V1
  2. {
  3. [ApiVersion("1.0")]
  4. [Route("v{version:apiVersion}/users")]
  5. [ApiController]
  6. public class UsersController : ControllerBase
  7. {
  8. private readonly IUserService _userService;
  9. private readonly IEmailer _emailer;
  10. public UsersController(IUserService userService, IEmailer emailer)
  11. {
  12. _userService = userService;
  13. _emailer = emailer;
  14. }
  15. [HttpGet]
  16. public async Task<IActionResult> GetAll()
  17. {
  18. return Ok("Hello from protected route");
  19. }
  20. [HttpGet("ForgotPassword")]
  21. public async Task<IActionResult> ForgotPassword(string email)
  22. {
  23. var result = await _userService.GetEmailConfirmationUrlAsync(email);
  24. return Ok(result);
  25. }
  26. [HttpPost("RessetPassword")]
  27. public async Task<IActionResult> ResetPassword([FromBody]ResetPasswordModel model)
  28. {
  29. var result = await _userService.PasswordResetAsync(email:model.Email,code: model.Code,password: model.Password);
  30. return Ok(result);
  31. }
  32. [HttpPost]
  33. public async Task<IActionResult> CreateUser([FromBody] CreateUserRequestDto model)
  34. {
  35. await _userService.CreateUser(model);
  36. return Ok();
  37. }
  38. [HttpPost("authenticate")]
  39. public async Task<IActionResult> Authenticate([FromBody] AuthenticateRequestDto model)
  40. {
  41. var response = await _userService.Authenticate(model);
  42. if (response.IsError is true)
  43. return BadRequest(new { message = response.ErrorMessage });
  44. return Ok(response.Data);
  45. }
  46. [HttpPost("refresh")]
  47. public async Task<IActionResult> RefreshToken([FromBody] RefreshTokenRequestDto model)
  48. {
  49. var response = await _userService.RefreshTokenAsync(model);
  50. if (response.Error != null)
  51. {
  52. return BadRequest(new AuthFailedResponse { Error = response.Error });
  53. }
  54. return Ok(response);
  55. }
  56. [HttpPost("logout")]
  57. public async Task<IActionResult> Logout(int userId)
  58. {
  59. var response = await _userService.DeleteRefreshToken(userId);
  60. if (response.IsError)
  61. {
  62. return BadRequest(new { message = response.ErrorMessage });
  63. }
  64. return Ok();
  65. }
  66. [HttpPost("authenticateGoogle")]
  67. public async Task<IActionResult> GoogleLogin(GoogleApiModel model)
  68. {
  69. var response = await _userService.Authenticate(model);
  70. if (response.IsError is true)
  71. return BadRequest(new { message = response.ErrorMessage });
  72. return Ok(response.Data);
  73. }
  74. }
  75. }