ChatCheap/ChatGemini/Controllers/ChatController.cs
2025-05-20 21:51:05 -03:00

45 lines
1.3 KiB
C#

using ChatServerSpace.Models;
using ChatServerSpace.Services;
using Microsoft.AspNetCore.Mvc;
namespace ChatServerSpace.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ChatController : ControllerBase
{
private readonly IChatService _chatService;
private readonly ILogger<ChatController> _logger;
public ChatController(IChatService chatService, ILogger<ChatController> logger)
{
_chatService = chatService;
_logger = logger;
}
[HttpPost]
public async Task<ActionResult<ChatResponse>> Chat([FromBody] ChatRequest request)
{
if (string.IsNullOrWhiteSpace(request.SessionId))
{
return BadRequest("SessionId is required");
}
if (string.IsNullOrWhiteSpace(request.Message))
{
return BadRequest("Message is required");
}
try
{
var response = await _chatService.ProcessMessageAsync(request);
return Ok(response);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error processing chat message");
return StatusCode(500, "An error occurred while processing your message");
}
}
}
}