62 lines
2.8 KiB
C#
62 lines
2.8 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Modelo;
|
|
using Entidades;
|
|
using Entidades.Dto;
|
|
using AlquilaFacil.Builder;
|
|
namespace AlquilaFacil.Controllers;
|
|
|
|
[ApiController]
|
|
public class PermisoController : ControllerBase
|
|
{
|
|
[HttpPost("api/permisos")]
|
|
public IActionResult CrearPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
|
|
{
|
|
var ret1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 17);
|
|
if (ret1 == false) return BadRequest(new { message = "No tienes permiso para esto" });
|
|
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
|
|
|
if (String.IsNullOrWhiteSpace(perm.Descripcion)) return BadRequest(new { message = "No puede tener una descripcion vacia" });
|
|
if (perm.Descripcion.Length > 25) return BadRequest(new { message = "la descripcion no puede tener más de 25 caractéres" });
|
|
|
|
var permiso = new PermisoBuilder().SetDescripcion(perm.Descripcion).Build();
|
|
|
|
var ret = RepositorioPermisos.Singleton.CrearPermiso(permiso, cli);
|
|
|
|
return ret ? Ok() : BadRequest();
|
|
}
|
|
[HttpPatch("api/permisos")]
|
|
public IActionResult PatchPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
|
|
{
|
|
var ret1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 17);
|
|
if (ret1 == false) return BadRequest(new { message = "No tienes permiso para esto" });
|
|
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
|
|
|
if (perm.Id <= 0) return BadRequest(new { message = "No puede haber una id 0 o menor" });
|
|
if (String.IsNullOrWhiteSpace(perm.Descripcion)) return BadRequest(new { message = "No puede tener una descripcion vacia" });
|
|
if (perm.Descripcion.Length > 25) return BadRequest(new { message = "la descripcion no puede tener más de 25 caractéres" });
|
|
|
|
var permiso = new PermisoBuilder().SetDescripcion(perm.Descripcion).SetID(perm.Id).Build();
|
|
|
|
var ret = RepositorioPermisos.Singleton.PatchPermiso(permiso, cli);
|
|
|
|
return ret ? Ok() : BadRequest();
|
|
}
|
|
[HttpGet("/api/permisos/todos")]
|
|
public IActionResult ObtenerTodosLosPermisos([FromHeader(Name = "Auth")] string Auth)
|
|
{
|
|
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 18);
|
|
if (ret == false) return BadRequest(new { message = "No tiene permiso para ver Todos los permisos" });
|
|
|
|
var permisos = RepositorioPermisos.Singleton.ListarPermisos();
|
|
var perms = permisos.Select(permiso => new PermisoDtoBuilder()
|
|
.ConId(permiso.Id)
|
|
.ConDescripcion(permiso.Descripcion)
|
|
.Build());
|
|
return Ok(perms);
|
|
}
|
|
}
|