Skip to content

Commit

Permalink
permisos en algunos lugares que faltaba y test rehecho
Browse files Browse the repository at this point in the history
  • Loading branch information
MatiasBais committed Apr 5, 2024
1 parent a7e78f2 commit b51c319
Show file tree
Hide file tree
Showing 9 changed files with 238 additions and 497 deletions.
14 changes: 7 additions & 7 deletions api/v1/categoria.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as express from "express";
import {
Etiqueta,
Categoria,
} from "./model.js";
import { mensajeError401, mensajeError403, mensajeError404 } from "./mensajesError.js";
Etiqueta,
Categoria,
} from "./model.js";
import { mensajeError401, mensajeError403, mensajeError404 } from "./mensajesError.js";


const router = express.Router();
Expand Down Expand Up @@ -67,8 +67,8 @@ router.post("/", async (req, res) => {
res.status(400).send(error.message);
}
});
// Ruta para actualizar una categoría por su ID

// Ruta para actualizar una categoría por su ID
router.patch("/:id", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
Expand Down Expand Up @@ -106,7 +106,7 @@ router.delete("/:id", async (req, res) => {
res.status(500).send(error.message);
}
});




Expand Down
5 changes: 4 additions & 1 deletion api/v1/etiqueta.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,10 @@ router.delete("/:etiquetaID/suscripcion", function (req, res) {
});

router.get("/masUsadas", function (req, res) {

if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}

EtiquetasPregunta.findAll({
attributes: ["etiquetumID", [Sequelize.fn('COUNT', Sequelize.col('etiquetumID')), 'cantidad']],
Expand Down
50 changes: 22 additions & 28 deletions api/v1/parametro.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
Parametro,
} from "./model.js";

import {setModera, setRechazaPost, setReportaPost, setResultadosPorPagina} from "./parametros.js"
import { setModera, setRechazaPost, setReportaPost, setResultadosPorPagina } from "./parametros.js"
import { mensajeError401 } from "./mensajesError.js";

const router = express.Router();
Expand All @@ -27,43 +27,37 @@ Parametro.findAll().then((ps) => {


router.get("/", function (req, res) {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
Parametro.findAll({
attributes: ["ID", "descripcion", "valor"]
}).then((parametros) => {
res.send(parametros);
});

router.patch("/:ID", function (req, res) {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
if (!req.session.usuario) {
res
.status(403)
.send("No se poseen permisos de administración o sesión válida activa");
return;
} else if (req.session.usuario.perfil.permiso.ID < 3) {
res
.status(403)
.send("No se poseen permisos de administración o sesión válida activa");
return;
}
Parametro.findByPk(req.params.ID).then((p) => {
p.valor = req.body.valor;
p.save();
res.status(200).send(p);
if (req.params.ID == 1)
setResultadosPorPagina(parseInt(req.body.valor));
if (req.params.ID == 2) setModera(req.body.valor == "1");
if (req.params.ID == 3) setRechazaPost(parseInt(req.body.valor));
if (req.params.ID == 4) setReportaPost(parseInt(req.body.valor));
});
});

router.patch("/:ID", function (req, res) {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
Parametro.findByPk(req.params.ID).then((p) => {
p.valor = req.body.valor;
p.save();
res.status(200).send(p);
if (req.params.ID == 1)
setResultadosPorPagina(parseInt(req.body.valor));
if (req.params.ID == 2) setModera(req.body.valor == "1");
if (req.params.ID == 3) setRechazaPost(parseInt(req.body.valor));
if (req.params.ID == 4) setReportaPost(parseInt(req.body.valor));
});
});






export { router };
180 changes: 92 additions & 88 deletions api/v1/perfil.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,101 +9,105 @@ const router = express.Router();

// Ruta para crear un nuevo perfil
router.post("/", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
const { nombre, color, permisoID } = req.body;
try {
const nuevoPerfil = await Perfil.create({
descripcion: nombre,
color: color,
permisoID: permisoID,
});
res.status(201).json(nuevoPerfil);
} catch (error) {
res.status(400).send(error.message);
}
});

// Ruta para actualizar un perfil por su ID
router.patch("/:id", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
const { id } = req.params;
const { nombre, color, permisoID } = req.body;
try {
const perfil = await Perfil.findByPk(id);
if (perfil) {
perfil.descripcion = nombre;
perfil.color = color;
perfil.permisoID = permisoID;
await perfil.save();
if (req.session.usuario.perfil.ID == id)
req.session.usuario.perfil.color = color;
res.json(perfil);
} else {
res.status(404).send(mensajeError404);
}
} catch (error) {
res.status(400).send(error.message);
}
});

// Ruta para desactivar un perfil por su ID
router.patch("/:id/activado", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
const { nombre, color, permisoID } = req.body;
try {
const nuevoPerfil = await Perfil.create({
descripcion: nombre,
color: color,
permisoID: permisoID,
});
res.status(201).json(nuevoPerfil);
} catch (error) {
res.status(400).send(error.message);
}
});

// Ruta para actualizar un perfil por su ID
router.patch("/:id", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
const { id } = req.params;
const { nombre, color, permisoID } = req.body;
try {
const perfil = await Perfil.findByPk(id);
if (perfil) {
perfil.descripcion = nombre;
perfil.color = color;
perfil.permisoID = permisoID;
await perfil.save();
if (req.session.usuario.perfil.ID == id)
req.session.usuario.perfil.color = color;
res.json(perfil);
} else {
res.status(404).send(mensajeError404);
}
const { id } = req.params;
try {
const perfil = await Perfil.findByPk(id);
if (perfil) {
perfil.activado = !perfil.activado;
await perfil.save();
res.json(perfil);
} else {
res.status(404).send(mensajeError404);
}
} catch (error) {
res.status(400).send(error.message);
} catch (error) {
res.status(400).send(error.message);
}
});

// Ruta para desactivar un perfil por su ID
router.patch("/:id/activado", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
const { id } = req.params;
try {
const perfil = await Perfil.findByPk(id);
if (perfil) {
perfil.activado = !perfil.activado;
await perfil.save();
res.json(perfil);
} else {
res.status(404).send(mensajeError404);
}
});
} catch (error) {
res.status(400).send(error.message);
}
});



router.get("/", async (req, res) => {
try {
if(req.query.todos){
const perfiles = await Perfil.findAll({
include: {
model: Permiso,
attributes: ["ID", "descripcion"]
},
attributes: ["ID", "color", "permisoID", "descripcion", "activado"]
});
res.status(200).send(perfiles);
return;
}
let PAGINACION = getPaginacion();
let pagina = req.query.pagina ? req.query.pagina : 0;
const perfiles = await Perfil.findAndCountAll({
include: {
router.get("/", async (req, res) => {
if (req.session.usuario.perfil.permiso.ID < 3) {
res.status(401).send(mensajeError401);
return;
}
try {
if (req.query.todos) {
const perfiles = await Perfil.findAll({
include: {
model: Permiso,
attributes: ["ID", "descripcion"]
},
attributes: ["ID", "color", "permisoID", "descripcion", "activado"],
limit: PAGINACION.resultadosPorPagina,
offset:
(+pagina * PAGINACION.resultadosPorPagina)
attributes: ["ID", "color", "permisoID", "descripcion", "activado"]
});
res.setHeader('untfaq-cantidad-paginas', Math.ceil(perfiles.count / parseInt(PAGINACION.resultadosPorPagina)));
res.status(200).send(perfiles.rows);
} catch (error) {
res.status(500).send(error.message);
res.status(200).send(perfiles);
return;
}
});
let PAGINACION = getPaginacion();
let pagina = req.query.pagina ? req.query.pagina : 0;
const perfiles = await Perfil.findAndCountAll({
include: {
model: Permiso,
attributes: ["ID", "descripcion"]
},
attributes: ["ID", "color", "permisoID", "descripcion", "activado"],
limit: PAGINACION.resultadosPorPagina,
offset:
(+pagina * PAGINACION.resultadosPorPagina)
});
res.setHeader('untfaq-cantidad-paginas', Math.ceil(perfiles.count / parseInt(PAGINACION.resultadosPorPagina)));
res.status(200).send(perfiles.rows);
} catch (error) {
res.status(500).send(error.message);
}
});

export { router };
Loading

0 comments on commit b51c319

Please sign in to comment.