Proyecto ChatBot Con Gemini
This commit is contained in:
90
ChatbotApi/Constrollers/AdminController.cs
Normal file
90
ChatbotApi/Constrollers/AdminController.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
// Controllers/AdminController.cs
|
||||
using ChatbotApi.Data.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
|
||||
namespace ChatbotApi.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
[Authorize]
|
||||
public class AdminController : ControllerBase
|
||||
{
|
||||
private readonly AppContexto _context;
|
||||
|
||||
public AdminController(AppContexto context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
// GET: api/admin/contexto
|
||||
[HttpGet("contexto")]
|
||||
public async Task<IActionResult> GetAllContextoItems()
|
||||
{
|
||||
var items = await _context.ContextoItems.OrderBy(i => i.Clave).ToListAsync();
|
||||
return Ok(items);
|
||||
}
|
||||
|
||||
// POST: api/admin/contexto
|
||||
[HttpPost("contexto")]
|
||||
public async Task<IActionResult> CreateContextoItem([FromBody] ContextoItem item)
|
||||
{
|
||||
if (await _context.ContextoItems.AnyAsync(i => i.Clave == item.Clave))
|
||||
{
|
||||
return BadRequest("La clave ya existe.");
|
||||
}
|
||||
item.FechaActualizacion = DateTime.UtcNow;
|
||||
_context.ContextoItems.Add(item);
|
||||
await _context.SaveChangesAsync();
|
||||
return CreatedAtAction(nameof(GetAllContextoItems), new { id = item.Id }, item);
|
||||
}
|
||||
|
||||
// PUT: api/admin/contexto/5
|
||||
[HttpPut("contexto/{id}")]
|
||||
public async Task<IActionResult> UpdateContextoItem(int id, [FromBody] ContextoItem item)
|
||||
{
|
||||
if (id != item.Id)
|
||||
{
|
||||
return BadRequest();
|
||||
}
|
||||
var existingItem = await _context.ContextoItems.FindAsync(id);
|
||||
if (existingItem == null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
existingItem.Valor = item.Valor;
|
||||
existingItem.Descripcion = item.Descripcion;
|
||||
existingItem.FechaActualizacion = DateTime.UtcNow;
|
||||
|
||||
await _context.SaveChangesAsync();
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
// DELETE: api/admin/contexto/5
|
||||
[HttpDelete("contexto/{id}")]
|
||||
public async Task<IActionResult> DeleteContextoItem(int id)
|
||||
{
|
||||
var item = await _context.ContextoItems.FindAsync(id);
|
||||
if (item == null)
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
_context.ContextoItems.Remove(item);
|
||||
await _context.SaveChangesAsync();
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
// GET: api/admin/logs
|
||||
[HttpGet("logs")]
|
||||
public async Task<IActionResult> GetConversationLogs()
|
||||
{
|
||||
// Obtenemos los últimos 200 logs, ordenados del más reciente al más antiguo.
|
||||
var logs = await _context.ConversacionLogs
|
||||
.OrderByDescending(log => log.Fecha)
|
||||
.Take(200)
|
||||
.ToListAsync();
|
||||
return Ok(logs);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user