import express, { Express, Response } from 'express'; import { initORM } from './orm.js'; import themeRoutes from './routes/themes.js'; import learningPathRoutes from './routes/learningPaths.js'; import learningObjectRoutes from './routes/learningObjects.js'; import studentRouter from './routes/student.js'; import groupRouter from './routes/group.js'; import assignmentRouter from './routes/assignment.js'; import submissionRouter from './routes/submission.js'; import classRouter from './routes/class.js'; import questionRouter from './routes/question.js'; import loginRouter from './routes/login.js'; import { getLogger, Logger } from './logging/initalize.js'; import { responseTimeLogger } from './logging/responseTimeLogger.js'; import responseTime from 'response-time'; import { EnvVars, getNumericEnvVar } from './util/envvars.js'; const logger: Logger = getLogger(); const app: Express = express(); const port: string | number = getNumericEnvVar(EnvVars.Port); app.use(express.json()); app.use(responseTime(responseTimeLogger)); // TODO Replace with Express routes app.get('/', (_, res: Response) => { logger.debug('GET /'); res.json({ message: 'Hello Dwengo!🚀', }); }); app.use('/student', studentRouter); app.use('/group', groupRouter); app.use('/assignment', assignmentRouter); app.use('/submission', submissionRouter); app.use('/class', classRouter); app.use('/question', questionRouter); app.use('/login', loginRouter); app.use('/theme', themeRoutes); app.use('/learningPath', learningPathRoutes); app.use('/learningObject', learningObjectRoutes); async function startServer() { await initORM(); app.listen(port, () => { logger.info(`Server is running at http://localhost:${port}`); }); } await startServer();