Files
NoIdle/backend/server.js

83 lines
2.4 KiB
JavaScript
Raw Normal View History

const express = require('express');
const cors = require('cors');
require('dotenv').config();
const app = express();
// Middleware CORS
const corsOptions = {
origin: function (origin, callback) {
// Permitir requisições sem origin (mobile apps, Postman, etc)
if (!origin) return callback(null, true);
// Lista de origens permitidas
const allowedOrigins = [
'https://admin.noidle.tech',
'https://admin.pointcontrol.co',
'http://localhost:3000',
'http://localhost:3001'
];
if (allowedOrigins.indexOf(origin) !== -1 || origin.includes('localhost')) {
callback(null, true);
} else {
callback(null, true); // Permitir todas por enquanto, pode restringir depois
}
},
credentials: true,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization', 'X-API-Key']
};
app.use(cors(corsOptions));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Log
app.use((req, res, next) => {
console.log(`${new Date().toISOString()} - ${req.method} ${req.url}`);
next();
});
// Rotas
const authRoutes = require('./routes/auth');
const dashboardRoutes = require('./routes/dashboard');
const devicesRoutes = require('./routes/devices');
const activitiesRoutes = require('./routes/activities');
const activityRoutes = require('./routes/activity');
const keysRoutes = require('./routes/keys');
const usersRoutes = require('./routes/users');
const teamsRoutes = require("./routes/teams");
app.use('/api/auth', authRoutes);
app.use('/api/dashboard', dashboardRoutes);
app.use('/api/devices', devicesRoutes);
app.use('/api/activities', activitiesRoutes);
app.use("/api/activity", activityRoutes);
app.use('/api/keys', keysRoutes);
app.use('/api/users', usersRoutes);
app.use("/api/teams", teamsRoutes);
// Health check
app.get('/api/health', (req, res) => {
res.json({ status: 'ok', timestamp: new Date().toISOString() });
});
// 404
app.use((req, res) => {
res.status(404).json({ error: 'Rota não encontrada' });
});
// Error handler
app.use((err, req, res, next) => {
console.error('Erro:', err);
res.status(500).json({ error: 'Erro interno do servidor' });
});
const PORT = process.env.PORT || 3005;
app.listen(PORT, () => {
console.log(`✅ PointControl API rodando na porta ${PORT}`);
console.log(`📅 ${new Date().toISOString()}`);
});