mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Working on API route for status.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import {NextRequest, NextResponse} from 'next/server'
|
||||
import {loggingMiddleware} from "@/middleware/loggingMiddleware";
|
||||
import {errorHandler} from "@/middleware/errorHandler";
|
||||
|
||||
export function middleware(request: NextRequest) {
|
||||
const url = request.nextUrl.clone();
|
||||
if (url.pathname.startsWith('/api')) {
|
||||
const routeExists = checkRouteExists(url.pathname);
|
||||
// If the route does not exist, return a 404 JSON response
|
||||
if (!routeExists) {
|
||||
return new NextResponse(
|
||||
JSON.stringify({ message: "This API route does not exist.", status: 404 }),
|
||||
{ status: 404, headers: { 'Content-Type': 'application/json' } }
|
||||
);
|
||||
}
|
||||
}
|
||||
try{
|
||||
loggingMiddleware(request);
|
||||
}catch(err){
|
||||
errorHandler(err)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// Function to check if the route exists (supports dynamic routes)
|
||||
function checkRouteExists(pathname) {
|
||||
// Define static and dynamic routes with patterns
|
||||
const routePatterns = [
|
||||
//do not delete
|
||||
// /^\/api\/auth\/\d+$/, // Dynamic route with a number as a parameter (e.g., /api/dynamic/123)
|
||||
// /^\/api\/auth\/\w+$/, // Dynamic route with a number as a parameter (e.g., /api/dynamic/123)
|
||||
// /^\/api\/agent\/healthcheck\/\w+$/, // Dynamic route with an alphanumeric parameter (e.g., /api/user/username)
|
||||
/^\/api\/agent\/[^/]+\/status\/?$/, // Dynamic route for /api/agent/[id]/status
|
||||
];
|
||||
return routePatterns.some(pattern => pattern.test(pathname));
|
||||
}
|
||||
export const config = {
|
||||
matcher: ['/api/agent/:path*'],
|
||||
};
|
||||
Reference in New Issue
Block a user