81 lines
3.2 KiB
TypeScript
81 lines
3.2 KiB
TypeScript
import express from 'express';
|
|
import cors from 'cors';
|
|
import path from 'path';
|
|
import dotenv from 'dotenv';
|
|
|
|
import authRoutes from './routes/auth.routes.js';
|
|
import customerRoutes from './routes/customer.routes.js';
|
|
import addressRoutes from './routes/address.routes.js';
|
|
import bankcardRoutes from './routes/bankcard.routes.js';
|
|
import documentRoutes from './routes/document.routes.js';
|
|
import meterRoutes from './routes/meter.routes.js';
|
|
import stressfreiEmailRoutes from './routes/stressfreiEmail.routes.js';
|
|
import contractRoutes from './routes/contract.routes.js';
|
|
import platformRoutes from './routes/platform.routes.js';
|
|
import cancellationPeriodRoutes from './routes/cancellation-period.routes.js';
|
|
import contractDurationRoutes from './routes/contract-duration.routes.js';
|
|
import providerRoutes from './routes/provider.routes.js';
|
|
import tariffRoutes from './routes/tariff.routes.js';
|
|
import userRoutes from './routes/user.routes.js';
|
|
import uploadRoutes from './routes/upload.routes.js';
|
|
import developerRoutes from './routes/developer.routes.js';
|
|
import contractCategoryRoutes from './routes/contractCategory.routes.js';
|
|
import contractTaskRoutes from './routes/contractTask.routes.js';
|
|
import appSettingRoutes from './routes/appSetting.routes.js';
|
|
import emailProviderRoutes from './routes/emailProvider.routes.js';
|
|
import cachedEmailRoutes from './routes/cachedEmail.routes.js';
|
|
import invoiceRoutes from './routes/invoice.routes.js';
|
|
import contractHistoryRoutes from './routes/contractHistory.routes.js';
|
|
|
|
dotenv.config();
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3001;
|
|
|
|
// Middleware
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// Statische Dateien für Uploads
|
|
app.use('/api/uploads', express.static(path.join(process.cwd(), 'uploads')));
|
|
|
|
// Routes
|
|
app.use('/api/auth', authRoutes);
|
|
app.use('/api/customers', customerRoutes);
|
|
app.use('/api/addresses', addressRoutes);
|
|
app.use('/api/bank-cards', bankcardRoutes);
|
|
app.use('/api/documents', documentRoutes);
|
|
app.use('/api/meters', meterRoutes);
|
|
app.use('/api/stressfrei-emails', stressfreiEmailRoutes);
|
|
app.use('/api/contracts', contractRoutes);
|
|
app.use('/api/platforms', platformRoutes);
|
|
app.use('/api/cancellation-periods', cancellationPeriodRoutes);
|
|
app.use('/api/contract-durations', contractDurationRoutes);
|
|
app.use('/api/providers', providerRoutes);
|
|
app.use('/api/tariffs', tariffRoutes);
|
|
app.use('/api/users', userRoutes);
|
|
app.use('/api/upload', uploadRoutes);
|
|
app.use('/api/developer', developerRoutes);
|
|
app.use('/api/contract-categories', contractCategoryRoutes);
|
|
app.use('/api', contractTaskRoutes);
|
|
app.use('/api/settings', appSettingRoutes);
|
|
app.use('/api/email-providers', emailProviderRoutes);
|
|
app.use('/api', cachedEmailRoutes);
|
|
app.use('/api/energy-details', invoiceRoutes);
|
|
app.use('/api', contractHistoryRoutes);
|
|
|
|
// Health check
|
|
app.get('/api/health', (req, res) => {
|
|
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|
});
|
|
|
|
// Error handling
|
|
app.use((err: Error, req: express.Request, res: express.Response, next: express.NextFunction) => {
|
|
console.error(err.stack);
|
|
res.status(500).json({ success: false, error: 'Interner Serverfehler' });
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`Server läuft auf Port ${PORT}`);
|
|
});
|