Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. public UsersController(IUserService userService)
  10. {
  11. _userService = userService;
  12. }
  13. [Authorize]
  14. [HttpGet]
  15. public IActionResult GetAll()
  16. {
  17. return Ok("Hello from protected route");
  18. }
  19. [HttpPost]
  20. public async Task<IActionResult> CreateUser([FromBody]CreateUserRequestDto model)
  21. {
  22. await _userService.CreateUser(model);
  23. return Ok();
  24. }
  25. [HttpPost("authenticate")]
  26. public async Task<IActionResult> Authenticate([FromBody] AuthenticateRequestDto model)
  27. {
  28. var response = await _userService.Authenticate(model);
  29. if (response.IsError is true)
  30. return BadRequest(new { message = response.ErrorMessage });
  31. return Ok(response.Data);
  32. }
  33. [HttpPost("refresh")]
  34. public async Task<IActionResult> RefreshToken([FromBody] RefreshTokenRequestDto model)
  35. {
  36. var response = await _userService.RefreshTokenAsync(model);
  37. if (response.Error != null)
  38. {
  39. return BadRequest(new AuthFailedResponse { Error = response.Error });
  40. }
  41. return Ok(new RefreshedTokenResponseDto { Token = response.Token, RefreshToken = response.Token });
  42. }
  43. [HttpGet("authenticateGoogle")]
  44. public async Task<IActionResult> GoogleLogin(string email)
  45. {
  46. var response = await _userService.Authenticate(email);
  47. if (response.IsError is true)
  48. return BadRequest(new { message = response.ErrorMessage });
  49. return Ok(response.Data);
  50. }
  51. }
  52. }