diff --git a/backend/index.js b/backend/index.js index 56c8f527..69e4afeb 100644 --- a/backend/index.js +++ b/backend/index.js @@ -6,6 +6,7 @@ const electiveRoute = require('./views/routes/Electives') const learningPathRoute = require('./views/routes/LearningPaths') const logoutRoutes = require('./views/routes/Users'); const sequelize = require('sequelize'); +const deleteLearningPathsRoute = require('./views/routes/LearningPaths'); require("dotenv").config(); const app = express(); @@ -15,7 +16,8 @@ app.use(cors()); app.use('/auth', userRoute); app.use('/elective', electiveRoute); -app.use('/learning_paths', learningPathRoute); +app.use('/learningpath', learningPathRoute); +app.use('/deleteLearningPaths', deleteLearningPathsRoute); app.use('/api', logoutRoutes); // sequelize diff --git a/frontend/src/pages/PathExclusion/index.js b/frontend/src/pages/PathExclusion/index.js index b850173f..0bda75ea 100644 --- a/frontend/src/pages/PathExclusion/index.js +++ b/frontend/src/pages/PathExclusion/index.js @@ -28,7 +28,7 @@ const TrilhasList = () => { useEffect(() => { async function fetchTrilhas() { try { - const response = await axios.get('http://localhost:3000/api/trilhas'); // Endpoint para buscar trilhas + const response = await axios.get('http://localhost:3000/learningpath/learningpath'); // Endpoint para buscar trilhas setTrilhas(response.data); // Define as trilhas na state 'trilhas' } catch (error) { console.error('Erro ao buscar trilhas:', error); @@ -38,33 +38,43 @@ const TrilhasList = () => { }, []); // Função para marcar/desmarcar trilha selecionada - const toggleSelecionada = (id) => { + const handleCheckboxChange = (id) => { const isSelected = trilhasSelecionadas.includes(id); + if (isSelected) { - const updatedSelection = trilhasSelecionadas.filter((trilhaId) => trilhaId !== id); - setTrilhasSelecionadas(updatedSelection); + // Se já estiver selecionado, remova da lista de selecionados + setTrilhasSelecionadas(trilhasSelecionadas.filter((eleId) => eleId !== id)); } else { + // Se não estiver selecionado, adicione à lista de selecionados setTrilhasSelecionadas([...trilhasSelecionadas, id]); } + + console.log(trilhasSelecionadas) }; + // Função para excluir trilhas selecionadas - const handleExcluirTrilhas = async () => { + const handleExcluirClick = async () => { try { - await axios.delete('http://localhost:3000/api/deleteLearningPaths', { - data: { id: trilhasSelecionadas }, // Envia os IDs das trilhas selecionadas para exclusão - }); - // Atualiza a lista de trilhas após a exclusão - const updatedTrilhas = trilhas.filter((trilha) => !trilhasSelecionadas.includes(trilha.id)); - setTrilhas(updatedTrilhas); - setTrilhasSelecionadas([]); // Limpa as trilhas selecionadas após a exclusão - alert('Trilhas excluídas com sucesso!'); + // Enviar uma solicitação para excluir as eletivas selecionadas + trilhasSelecionadas.map(async (eletiva) => { + await axios.delete('http://localhost:3001/elective/deleteElective', { + data: { id: eletiva }, + }); + }) + + // Atualizar a lista de eletivas após a exclusão + const response = await axios.get('http://localhost:3000/learningpath/deleteLearningPaths'); + setTrilhas(response.data); + + // Limpar a lista de eletivas selecionadas + setTrilhasSelecionadas([]); } catch (error) { console.error('Erro ao excluir trilhas:', error); } }; - const dados = [{"nomeTrilha": "teste", "anoTrilha": 2}] + return ( @@ -84,18 +94,18 @@ const TrilhasList = () => { - {dados.map((linha, index) => ( + {trilhas.map((linha, index) => ( {linha.nomeTrilha} {linha.anoTrilha} - + handleCheckboxChange(linha.id)}> ))} - +