51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import 'dotenv/config';
|
|
import express from 'express';
|
|
import cors from 'cors';
|
|
import authRoutes from './routes/auth';
|
|
import categoryRoutes from './routes/categories';
|
|
import taskRoutes from './routes/tasks';
|
|
import subtaskRoutes from './routes/subtasks';
|
|
import userRoutes from './routes/users';
|
|
import friendRoutes from './routes/friends';
|
|
import repeatProfileRoutes from './routes/repeatProfiles';
|
|
import syncRoutes from './routes/sync';
|
|
import pushNotificationRoutes from './routes/pushNotifications';
|
|
import { errorHandler, notFoundHandler } from './middleware/errorHandler';
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
app.use(cors({
|
|
origin: true,
|
|
credentials: true,
|
|
}));
|
|
app.use(express.json());
|
|
|
|
// Health check
|
|
app.get('/health', (req, res) => {
|
|
res.json({ status: 'ok', timestamp: Date.now() });
|
|
});
|
|
|
|
// API routes
|
|
app.use('/api/auth', authRoutes);
|
|
app.use('/api/categories', categoryRoutes);
|
|
app.use('/api/tasks', taskRoutes);
|
|
app.use('/api/subtasks', subtaskRoutes);
|
|
app.use('/api/users', userRoutes);
|
|
app.use('/api/repeat-profiles', repeatProfileRoutes);
|
|
app.use('/api/sync', syncRoutes);
|
|
app.use('/api/friends', friendRoutes);
|
|
app.use('/api/push', pushNotificationRoutes);
|
|
|
|
// 404 handler
|
|
app.use(notFoundHandler);
|
|
|
|
// Error handler
|
|
app.use(errorHandler);
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`🚀 Server running on http://localhost:${PORT}`);
|
|
console.log(`📚 API available at http://localhost:${PORT}/api`);
|
|
});
|
|
|
|
export default app; |