您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

AuthenticationController.cs 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Diligent.WebAPI.Host.DTOs.Customer;
  2. using Diligent.WebAPI.Host.Mediator.Authentication.Commands;
  3. using Diligent.WebAPI.Host.Mediator.Authentication.Queries;
  4. using MediatR;
  5. using Microsoft.AspNetCore.Mvc;
  6. using System.Diagnostics.CodeAnalysis;
  7. namespace Diligent.WebAPI.Host.Controllers
  8. {
  9. [ApiVersion("1.0")]
  10. [ApiController]
  11. [Route("v{version:apiVersion}/[controller]")]
  12. [ExcludeFromCodeCoverage]
  13. public class AuthenticationController : ControllerBase
  14. {
  15. // password for every user in database is "Nekasifra123!"
  16. private readonly IMediator _mediator;
  17. public AuthenticationController(IMediator mediator)
  18. {
  19. _mediator = mediator;
  20. }
  21. [HttpPost("login")]
  22. public async Task<ActionResult<CustomerReadDTO>> Login(CustomerLoginDTO customerLoginDTO) =>
  23. await _mediator.Send(new LoginUserQuery(customerLoginDTO));
  24. [HttpPost("addRole")]
  25. public async Task<ActionResult> CreateRole(string nameOfRole)
  26. {
  27. await _mediator.Send(new AddRoleCommand(nameOfRole));
  28. return StatusCode(201);
  29. }
  30. [HttpPost("register")]
  31. public async Task<ActionResult<CustomerReadDTO>> Register(CustomerCreateDTO customerCreateDTO) =>
  32. await _mediator.Send(new RegisterUserCommand(customerCreateDTO));
  33. }
  34. }