Apigateway/Microservicios/MsUsuarios/Controllers/UsuariosTempController.cs

107 lines
3.5 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MSAdminUsuarios.Context;
using MSAdminUsuarios.Models;
namespace MSAdminUsuarios.Controllers
{
[Route("[controller]")]
[ApiController]
public class UsuariosTempController : ControllerBase
{
private readonly ModelContext _context;
private readonly ILogger<UsuariosTempController> _logger;
private ErrorModel _errorModel;
public UsuariosTempController(ModelContext context, ILogger<UsuariosTempController> logger)
{
_context = context;
_logger = logger;
_errorModel = new ErrorModel();
}
[HttpGet]
public async Task<IActionResult> Get()
{
_errorModel = new ErrorModel();
try
{
List<USUARIOSTEMP> externos = await _context.USUARIOSTEMP.OrderBy(q => q.NU_PK_USUTMP).ToListAsync();
return Ok(externos);
}
catch (Exception)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("Error con la base de datos.");
return BadRequest(_errorModel);
}
}
[HttpPost]
public async Task<IActionResult> Post(USUARIOSTEMP nuevo)
{
_errorModel = new ErrorModel();
try
{
if (nuevo == null)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("No se envió solicitud.");
return Conflict(_errorModel);
}
_context.USUARIOSTEMP.Add(nuevo);
await _context.SaveChangesAsync();
_errorModel.error = false;
_errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente.");
return Ok(_errorModel);
}
catch (Exception)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("Error con la base de datos.");
return BadRequest(_errorModel);
}
}
[HttpPatch]
public async Task<IActionResult> Patch(USUARIOSTEMP editado)
{
_errorModel = new ErrorModel();
try
{
if (editado == null)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("No se envió solicitud.");
return Conflict(_errorModel);
}
USUARIOSTEMP? existente = await _context.USUARIOSTEMP.FirstOrDefaultAsync(ut => ut.NU_PK_USUTMP == editado.NU_PK_USUTMP);
if (existente == null)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("Diseño no encontrado.");
return Conflict(_errorModel);
}
_context.Entry(existente).CurrentValues.SetValues(editado);
await _context.SaveChangesAsync();
_errorModel.error = false;
_errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente.");
return Ok(_errorModel);
}
catch (Exception)
{
_errorModel.error = true;
_errorModel.cuerpo.Add("Error con la base de datos.");
return BadRequest(_errorModel);
}
}
}
}