using BlackRock.Reporting.API.Mediator.AuthenticationMediator.Commands; using MediatR; using Microsoft.AspNetCore.Mvc; namespace BlackRock.Reporting.API.Controllers { public class AuthenticationController : ControllerBase { private readonly IMediator mediator; public AuthenticationController(IMediator mediator) { this.mediator = mediator; } [HttpPost("login")] public async Task Login([FromBody] LoginCommand loginCommand) { var result = await mediator.Send(loginCommand); if (!result.IsSuccess) return Unauthorized(result.Error); return Ok(result.Data); } [HttpPost("refresh")] public async Task Refresh([FromBody] RefreshCommand refreshCred) { var result = await mediator.Send(refreshCred); if (!result.IsSuccess) return Unauthorized(result.Error); return Ok(result.Data); } [HttpPost("logout")] public async Task Logout([FromBody] LogoutCommand refreshCred) { var result = await mediator.Send(refreshCred); if (!result.IsSuccess) return Unauthorized(result.Error); return Ok(); } } }