45 lines
1.3 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|
|
} |