49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Modelo;
|
|
using AlquilaFacil.Builder;
|
|
using Entidades;
|
|
using Entidades.Dto;
|
|
namespace AlquilaFacil.Controllers;
|
|
|
|
[ApiController]
|
|
public class GruposController : ControllerBase
|
|
{
|
|
[HttpGet("api/admin/grupos")]
|
|
public IActionResult ObtenerGrupos([FromHeader(Name = "Auth")] string Auth)
|
|
{
|
|
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 18);
|
|
if (ret == false) return BadRequest(new { message = "No tiene permiso para Gestionar grupos" });
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
|
|
|
var grupos = RepositorioGrupos.Singleton.ListarTodosLosGrupos()
|
|
.Select(g => new GrupoDtoBuilder()
|
|
.ConNombre(g.Nombre)
|
|
.ConIdGrupo(g.Id)
|
|
.ConGruposIncluidos(new HashSet<string>(g.IdGrupoHijos
|
|
.Select(id => id.Nombre ?? "")))
|
|
.ConPermisos(g.Idpermisos.Select(p => new PermisoDtoBuilder()
|
|
.ConId(p.Id)
|
|
.ConDescripcion(p.Descripcion)
|
|
.Build())
|
|
.ToList())
|
|
.Build())
|
|
.ToList();
|
|
|
|
return Ok(grupos);
|
|
|
|
}
|
|
[HttpPatch("/api/grupo")]
|
|
public IActionResult PatchGrupo([FromHeader(Name = "Auth")] string Auth, GrupoDto grupo)
|
|
{
|
|
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 18);
|
|
if (ret == false) return BadRequest(new { message = "No tiene permiso para Gestionar grupos" });
|
|
|
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
|
Console.WriteLine(grupo.GruposIncluidos.Count);
|
|
bool ret2 = RepositorioGrupos.Singleton.PatchGrupo(grupo, cli);
|
|
return ret2 ? Ok(new { message = "Se Modifico el grupo" }) : BadRequest(new { message = "Fallo al editar el grupo" });
|
|
}
|
|
}
|