FEAT: Criação da API genérica e reorganização dos arquivos em uma pasta ./src

This commit is contained in:
tulioperdigao 2025-11-04 12:00:23 -03:00
parent c5bee3de55
commit c6e8162bfd
18 changed files with 90 additions and 21 deletions

23
.env
View File

@ -19,13 +19,24 @@ HUBGLPI_DB_NAME=hubglpi
HUBGLPI_DB_USER=desenvolvimento HUBGLPI_DB_USER=desenvolvimento
HUBGLPI_DB_PASSWORD=Ut@2S@$M9Xs@@W HUBGLPI_DB_PASSWORD=Ut@2S@$M9Xs@@W
# Banco GLPI (MySQL) # # Banco GLPI (MySQL)
GLPI_DB_TYPE=mysql2/promise # GLPI_DB_TYPE=mysql2/promise
GLPI_DB_HOST=177.73.177.28 # GLPI_DB_HOST=177.73.177.28
# GLPI_DB_PORT=3306
# GLPI_DB_USER=dev
# GLPI_DB_PASSWORD=Ut@2S@$M9Xs
# GLPI_DB_NAME=glpi_data
# GLPI_DB_CHARSET=utf8mb4
# GLPI (Desenvolvimento)
GLPI_DB_TYPE=mysql
GLPI_DB_HOST=177.73.177.32
GLPI_DB_PORT=3306 GLPI_DB_PORT=3306
GLPI_DB_USER=dev GLPI_DB_USER=snglpi
GLPI_DB_PASSWORD=Ut@2S@$M9Xs GLPI_DB_PASSWORD=j2633669
GLPI_DB_NAME=glpi_data GLPI_DB_NAME=glpi_data
GLPI_DB_CHARSET=utf8mb4 GLPI_DB_CHARSET=utf8mb4
NODE_ENV=prod PORT=3000
NODE_ENV=development

13
src/app.js Normal file
View File

@ -0,0 +1,13 @@
const express = require('express');
const router = require('./routes.js')
function createApp() {
const app = express();
app.use(express.json());
app.use('/api', router);
return app;
}
module.exports = createApp;

View File

@ -0,0 +1,12 @@
const ticketService = require('../services/ticketService.js');
const closeTicket = async (req, res) => {
try {
const closingTicket = await ticketService.fechaTicket(req.params.id);
res.status(200).json(closingTicket);
} catch (error) {
res.status(500).json({ error: error.message });
}
}
module.exports = { closeTicket };

View File

@ -1,5 +1,9 @@
const hubsoftController = require('./controller/processController.js'); const hubsoftController = require('./controller/processController.js');
const { logError, logInfo } = require('./utils/logger'); const { logError, logInfo } = require('./utils/logger.js');
const dotenv = require('dotenv');
dotenv.config();
logInfo('Aplicação iniciada', { logInfo('Aplicação iniciada', {
timestamp: new Date().toISOString(), timestamp: new Date().toISOString(),

7
src/routes.js Normal file
View File

@ -0,0 +1,7 @@
const { Router } = require('express');
const router = Router();
router.post('/close-ticket/:id', ticketController.closeTicket);
module.exports = router;

13
src/server.js Normal file
View File

@ -0,0 +1,13 @@
const dotenv = require('dotenv');
const createApp = require('./app.js');
dotenv.config();
const app = createApp();
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`✅ Servidor rodando na porta ${PORT}`);
});

View File

@ -0,0 +1,9 @@
const fechaTicket = async (ticketId) => {
// Lógica para fechar o ticket no GLPI
// Exemplo fictício:
return { id: ticketId, status: 'closed' };
}
module.exports = { fechaTicket };