71 lines
2.6 KiB
C#
71 lines
2.6 KiB
C#
using Entidades.Dto;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Modelo;
|
|
using Entidades;
|
|
|
|
namespace AlquilaFacil.Controllers;
|
|
|
|
[ApiController]
|
|
public class AccionesController : ControllerBase
|
|
{
|
|
|
|
[HttpGet("api/acciones")]
|
|
public IActionResult ListarAccionesPorUsuario([FromHeader(Name = "Email")] string Email, [FromHeader(Name = "Auth")] string Auth)
|
|
{
|
|
if (Email == "" || Email == null) return BadRequest();
|
|
|
|
if (Auth == "") return Unauthorized(new { esValido = false });
|
|
|
|
bool esValido = RepositorioUsuarios.Singleton.CheckToken(Email, Auth);
|
|
if (!esValido) return Unauthorized();
|
|
|
|
var Permisos = RepositorioPermisos.Singleton.ListarPermisos(Email);
|
|
Response.Headers["Content-Type"] = "application/json";
|
|
return Ok(Permisos);
|
|
}
|
|
|
|
[HttpPost("api/acciones/grupo")]
|
|
public IActionResult ListarAccionesPorGrupo([FromHeader(Name = "Auth")] string Auth,
|
|
[FromBody] AccionesPorGrupoDto req) {
|
|
if (string.IsNullOrEmpty(Auth)) return BadRequest();
|
|
bool esValido = RepositorioUsuarios.Singleton.CheckToken(req.Email, Auth);
|
|
if (esValido == false) return BadRequest(esValido);
|
|
|
|
bool tieneGrupo = RepositorioUsuarios.Singleton.CheckGrupo(req.Email, req.Grupo);
|
|
if (tieneGrupo == false) return Unauthorized();
|
|
|
|
var permisos = RepositorioGrupos.Singleton.ListarPermisosDeGrupo(req.Grupo);
|
|
return Ok(permisos);
|
|
}
|
|
|
|
[HttpPost("api/acciones/crear")]
|
|
public IActionResult CrearAcciones([FromHeader(Name = "Auth")] string Auth,
|
|
[FromBody] CrearAccionesDto req)
|
|
{
|
|
if (string.IsNullOrEmpty(Auth)) return BadRequest();
|
|
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return Unauthorized();
|
|
|
|
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 1); //wip lo voy a usar para crear el permiso que va
|
|
if (ret == false) return Unauthorized();
|
|
|
|
if (string.IsNullOrWhiteSpace(req.Descripcion))
|
|
{
|
|
return BadRequest(new { message = "La descripción no puede estar vacía" });
|
|
}
|
|
|
|
if (req.Descripcion.Length > 25)
|
|
{
|
|
return BadRequest(new { message = "La descripción no puede ser mayor a 25 caracteres" });
|
|
}
|
|
|
|
var per = new Permiso
|
|
{
|
|
Descripcion = req.Descripcion,
|
|
}
|
|
var ret2 = RepositorioPermisos.Singleton.CrearPermiso(per);
|
|
return ret2 ? Ok(new { message = "se creo correctamente" }) : BadRequest(new { message = "No se pudo crear el permiso" });
|
|
}
|
|
}
|