instalar conexoes 1303
This commit is contained in:
55
api/app.ts
Normal file
55
api/app.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import express from 'express';
|
||||
import cors from 'cors';
|
||||
import projectRoutes from '../src/server/routes/projectRoutes.js';
|
||||
import partRoutes from '../src/server/routes/partRoutes.js';
|
||||
import paintingSchemeRoutes from '../src/server/routes/paintingSchemeRoutes.js';
|
||||
import applicationRecordRoutes from '../src/server/routes/applicationRecordRoutes.js';
|
||||
import inspectionRoutes from '../src/server/routes/inspectionRoutes.js';
|
||||
import analysisRoutes from '../src/server/routes/analysisRoutes.js';
|
||||
import dataSheetRoutes from '../src/server/routes/dataSheetRoutes.js';
|
||||
import yieldStudyRoutes from '../src/server/routes/yieldStudyRoutes.js';
|
||||
import userRoutes from '../src/server/routes/userRoutes.js';
|
||||
import systemSettingsRoutes from '../src/server/routes/systemSettingsRoutes.js';
|
||||
import geometryTypeRoutes from '../src/server/routes/geometryTypeRoutes.js';
|
||||
import stockRoutes from '../src/server/routes/stockRoutes.js';
|
||||
import notificationRoutes from '../src/server/routes/notificationRoutes.js';
|
||||
import instrumentRoutes from '../src/server/routes/instrumentRoutes.js';
|
||||
import { extractUser } from '../src/server/middleware/roleMiddleware.js';
|
||||
import path from 'path';
|
||||
|
||||
const app = express();
|
||||
|
||||
app.use(cors({
|
||||
origin: '*', // Be more specific in production
|
||||
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
|
||||
allowedHeaders: ['Content-Type', 'Authorization', 'x-clerk-user-id', 'x-organization-id', 'x-organization-name']
|
||||
}));
|
||||
app.use(express.json());
|
||||
|
||||
// Global Middleware
|
||||
app.use(extractUser);
|
||||
|
||||
// Static Uploads
|
||||
app.use('/uploads', express.static(path.join(process.cwd(), 'uploads')));
|
||||
|
||||
// Routes
|
||||
app.use('/api/users', userRoutes);
|
||||
app.use('/api/projects', projectRoutes);
|
||||
app.use('/api/parts', partRoutes);
|
||||
app.use('/api/painting-schemes', paintingSchemeRoutes);
|
||||
app.use('/api/application-records', applicationRecordRoutes);
|
||||
app.use('/api/inspections', inspectionRoutes);
|
||||
app.use('/api', analysisRoutes);
|
||||
app.use('/api/datasheets', dataSheetRoutes);
|
||||
app.use('/api/yield-studies', yieldStudyRoutes);
|
||||
app.use('/api/system-settings', systemSettingsRoutes);
|
||||
app.use('/api/geometry-types', geometryTypeRoutes);
|
||||
app.use('/api/stock', stockRoutes);
|
||||
app.use('/api/notifications', notificationRoutes);
|
||||
app.use('/api/instruments', instrumentRoutes);
|
||||
|
||||
app.get('/health', (req, res) => {
|
||||
res.json({ status: 'ok', timestamp: new Date() });
|
||||
});
|
||||
|
||||
export default app;
|
||||
27
api/db-test.ts
Normal file
27
api/db-test.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { VercelRequest, VercelResponse } from '@vercel/node';
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
export default async function handler(req: VercelRequest, res: VercelResponse) {
|
||||
try {
|
||||
const uri = process.env.MONGODB_URI;
|
||||
if (!uri) throw new Error('MONGODB_URI is missing from Vercel settings');
|
||||
|
||||
await mongoose.connect(uri);
|
||||
const state = mongoose.connection.readyState;
|
||||
await mongoose.disconnect();
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'MongoDB Connection verified!',
|
||||
state: state === 1 ? 'Connected' : state
|
||||
});
|
||||
} catch (error: unknown) {
|
||||
const message = error instanceof Error ? error.message : 'Unknown error';
|
||||
const stack = error instanceof Error ? error.stack : undefined;
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
error: message,
|
||||
stack: stack
|
||||
});
|
||||
}
|
||||
}
|
||||
28
api/index.ts
Normal file
28
api/index.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import type { VercelRequest, VercelResponse } from '@vercel/node';
|
||||
import app from './app.js';
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
export default async function handler(req: VercelRequest, res: VercelResponse) {
|
||||
try {
|
||||
console.log('--- API CALL:', req.url);
|
||||
|
||||
// Inline connection to avoid external file dependency issues during boot
|
||||
if (mongoose.connection.readyState !== 1) {
|
||||
const uri = process.env.MONGODB_URI;
|
||||
if (!uri) throw new Error('MONGODB_URI environment variable is missing');
|
||||
await mongoose.connect(uri);
|
||||
}
|
||||
|
||||
// Use the localized app.js
|
||||
return app(req, res);
|
||||
} catch (error: unknown) {
|
||||
console.error('SERVERLESS BOOT ERROR:', error);
|
||||
const message = error instanceof Error ? error.message : 'Unknown error';
|
||||
return res.status(500).json({
|
||||
error: 'Serverless Boot Error',
|
||||
message: message,
|
||||
path: req.url,
|
||||
suggestion: 'Check Vercel Logs for module resolution errors'
|
||||
});
|
||||
}
|
||||
}
|
||||
10
api/ping.ts
Normal file
10
api/ping.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import type { VercelRequest, VercelResponse } from '@vercel/node';
|
||||
|
||||
export default function handler(req: VercelRequest, res: VercelResponse) {
|
||||
res.json({
|
||||
status: 'ok',
|
||||
message: 'Vercel API is alive',
|
||||
time: new Date().toISOString(),
|
||||
env_check: process.env.MONGODB_URI ? 'URI present' : 'URI MISSING'
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user