using AutoMapper;
using AIAssistantModule.Core.Dtos.Admin;
using AIAssistantModule.Core.Interfaces.API;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Diagnostics;
namespace AIAssistantModule.API.Controllers.Public
{
///
/// AIAssistant Controller
///
[Route("rest/v{version:apiVersion}/aiassistants")]
[Produces("application/json")]
[ApiController]
public class AIAssistantController : Controller
{
private readonly IMapper _mapper;
private ILogger _logger;
private readonly IAIAssistantService _aiassistantService;
///
/// Constructor
///
///
///
///
public AIAssistantController(
ILogger logger,
IMapper mapper,
IAIAssistantService aiassistantService)
{
_mapper = mapper;
_logger = logger;
_aiassistantService = aiassistantService;
}
///
/// Prompt
///
///
///
[HttpPost("generate")]
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task GetAIAssistants([FromBody] AIAssistantRequestDto request)
{
_logger.LogInformation("Start generating code");
var stopwatch = Stopwatch.StartNew();
await _aiassistantService.GenerateCodeAsync(request);
stopwatch.Stop();
_logger.LogInformation($"Getting aiassistants done in {stopwatch.ElapsedMilliseconds}");
return Ok();
}
}
}