fusero-app-boilerplate/src/router.ts

35 lines
1.2 KiB
TypeScript

import { FastifyPluginAsync } from 'fastify';
import userRoutes from './apps/_app/routes/UserRoutes';
import canvasRoutes from './apps/canvas-api/canvasRouter';
import apiKeyRoutes from './apps/_app/routes/APIKeyRoutes';
import appRoutes from './apps/_app/routes/AppRoutes';
const routesPlugin: FastifyPluginAsync = async (app) => {
try {
///////////////////////////////////////
// TODO: Define routes in separate list
await app.register(userRoutes, { prefix: '/app/users' });
await app.register(apiKeyRoutes, { prefix: '/app/apikey' });
await app.register(canvasRoutes, { prefix: '/canvas-api' });
await app.register(appRoutes, { prefix: '/app' });
app.setErrorHandler((error, request, reply) => {
if (!reply.sent) {
// Ensure it's not already sent
reply.code(500).send({ error: 'Server error' });
}
});
app.setNotFoundHandler((request, reply) => {
reply.code(404).send({ message: 'Route not found' });
});
// TODO: catch-all routes here or not?
} catch (error) {
app.log.error(error, 'Failed to register routes');
throw error;
}
};
export default routesPlugin;