using Chatbot.Api.Application.Commands; using Chatbot.Api.Application.Queries; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; namespace Chatbot.Api.Controllers { [Authorize] [ApiController] [Route("system")] public class SystemController : ControllerBase { private readonly IMediator _mediator; public SystemController(IMediator mediator) { _mediator = mediator; } [AllowAnonymous] [HttpGet("ping")] public IActionResult Ping() { return Ok("Chatbot api ping success."); } [HttpGet("bots")] public async Task GetBots([FromRoute] GetBots.Query query) { var result = await _mediator.Send(query); return Ok(result); } [HttpGet("initialize-session/{botName}/{externalId}/{clientApplication}/{userKey}")] public async Task GetSession([FromRoute] GetSession.Query query) { var result = await _mediator.Send(query); return Ok(result); } [HttpPost("test-logger")] public async Task CloseChat([FromBody] TestLogger closeChat) { var result = await _mediator.Send(closeChat); return Ok(result); } } }