const { carregarDados, salvarDados } = require('../utils/jsonUtils'); // Importa funções utilitárias para manipulação de dados JSON // Controlador para adicionar um novo domínio const adicionarDominio = (req, res) => { const { domain, data } = req.body; // Obtém o domínio e os dados do corpo da requisição const domainData = carregarDados(); // Carrega os dados atuais dos domínios a partir do arquivo JSON // Verifica se o domínio já existe if (domainData[domain]) { return res.status(400).send('Domínio já existe'); // Retorna um erro 400 se o domínio já existir } // Adiciona o novo domínio domainData[domain] = [data]; // Adiciona os dados do novo domínio ao objeto domainData salvarDados(domainData); // Salva os dados atualizados no arquivo JSON res.status(201).send('Domínio adicionado com sucesso'); // Responde com um status 201 de sucesso }; // Controlador para editar um domínio existente const editarDominio = (req, res) => { const { domain, data } = req.body; // Obtém o domínio e os novos dados do corpo da requisição const domainData = carregarDados(); // Carrega os dados atuais dos domínios a partir do arquivo JSON // Verifica se o domínio existe if (!domainData[domain]) { return res.status(404).send('Domínio não encontrado'); // Retorna um erro 404 se o domínio não for encontrado } // Atualiza os dados do domínio domainData[domain] = [data]; // Atualiza os dados do domínio no objeto domainData salvarDados(domainData); // Salva os dados atualizados no arquivo JSON res.status(200).send('Domínio atualizado com sucesso'); // Responde com um status 200 de sucesso }; // Controlador para excluir um domínio existente const excluirDominio = (req, res) => { const { domain } = req.body; // Obtém o domínio a ser excluído do corpo da requisição const domainData = carregarDados(); // Carrega os dados atuais dos domínios a partir do arquivo JSON // Verifica se o domínio existe if (!domainData[domain]) { return res.status(404).send('Domínio não encontrado'); // Retorna um erro 404 se o domínio não for encontrado } // Remove o domínio delete domainData[domain]; // Remove o domínio do objeto domainData salvarDados(domainData); // Salva os dados atualizados no arquivo JSON res.status(200).send('Domínio excluído com sucesso'); // Responde com um status 200 de sucesso }; // Controlador para listar todos os domínios const listarDominios = (req, res) => { const domainData = carregarDados(); // Carrega os dados atuais dos domínios a partir do arquivo JSON res.json(domainData); // Retorna os dados dos domínios em formato JSON }; // Controlador para buscar dados de um domínio específico const buscarDominio = (req, res) => { const domainData = carregarDados(); // Carrega os dados atuais dos domínios a partir do arquivo JSON const domain = req.params.domain; // Obtém o domínio dos parâmetros da URL // Verifica se o domínio existe if (domainData[domain]) { res.json(domainData[domain][0]); // Retorna os dados do domínio específico em formato JSON } else { res.status(404).send('Domínio não encontrado'); // Retorna um erro 404 se o domínio não for encontrado } }; // Exporta os controladores para serem usados em outras partes da aplicação module.exports = { adicionarDominio, editarDominio, excluirDominio, listarDominios, buscarDominio };