35 lines
1.2 KiB
TypeScript
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;
|