gandalf-reborn/Api/Controllers/AuthController.cs
2025-03-02 12:51:02 +01:00

31 lines
1.1 KiB
C#

using MediatR;
using Microsoft.AspNetCore.Mvc;
using W542.GandalfReborn.Commands;
namespace W542.GandalfReborn.Controllers;
[ApiController]
[Route("api/[controller]")]
public class AuthController(IMediator mediator) : ControllerBase
{
[HttpPost("[action]")]
public async Task<IActionResult> Register([FromBody] RegisterCommand registerCommand)
{
var result = await mediator.Send(registerCommand);
return result.Match<IActionResult>(Ok, e => BadRequest($"{e.Message}\n{e.InnerException?.Message}"));
}
[HttpPost("[action]")]
public async Task<IActionResult> Login([FromBody] AuthCodeRequestCommand authCodeRequestCommand)
{
var result = await mediator.Send(authCodeRequestCommand);
return result.Match<IActionResult>(Ok, e => BadRequest($"{e.Message}\n{e.InnerException?.Message}"));
}
[HttpPost("[action]")]
public async Task<IActionResult> Token([FromBody] GetTokensCommand getTokensCommand)
{
var result = await mediator.Send(getTokensCommand);
return result.Match<IActionResult>(Ok, e => BadRequest($"{e.Message}\n{e.InnerException?.Message}"));
}
}