diff --git a/app/api/caddy/config/route.ts b/app/api/caddy/config/route.ts index e912136..6f9e3e0 100644 --- a/app/api/caddy/config/route.ts +++ b/app/api/caddy/config/route.ts @@ -1,8 +1,8 @@ -// Import the NextJS API route handler import { getConfig } from '@/lib/serverActions'; import { NextResponse } from 'next/server'; -// Define the route handler function +export const dynamic = 'force-dynamic' + export async function GET() { let caddyConfig = await getConfig(); diff --git a/app/api/caddy/routes/route.ts b/app/api/caddy/routes/route.ts index bebf8a3..0b51213 100644 --- a/app/api/caddy/routes/route.ts +++ b/app/api/caddy/routes/route.ts @@ -25,18 +25,22 @@ export async function DELETE(req: Request) { let routes: Route[] = await getRoutes(); let routesMap: Route[] = routes.map(r => r); - let targetRoute: Route = routesMap.filter((r) => (JSON.stringify(r) === JSON.stringify(route))).values().next().value; + let targetRoute: Route = routesMap.filter((r) => + (JSON.stringify(r) === JSON.stringify(route)) + )[0]; // Use array indexing instead of iterator + + if (!targetRoute) { + return new NextResponse(JSON.stringify({error: true, message: "Route not found"}), { + status: 404, + headers: { + 'Content-Type': 'application/json', + }, + }); + } let index = routesMap.indexOf(targetRoute); - - revalidateTag('routes'); - if(index == -1) return new NextResponse(JSON.stringify({error: true, message: "Route not found"}), { - status: 404, - headers: { - 'Content-Type': 'application/json', - }, - }) + revalidateTag('routes'); const res = await fetch(`${process.env.CADDY_API}/config/apps/http/servers/srv0/routes/${index}`, { method: 'DELETE', @@ -44,9 +48,8 @@ export async function DELETE(req: Request) { 'Content-Type': 'application/json' }, body: JSON.stringify({route, error: false}) - }); + }); - return new NextResponse(JSON.stringify(JSON.stringify(res.body)), { status: 200, headers: { diff --git a/app/api/caddy/servers/route.ts b/app/api/caddy/servers/route.ts index 0d088e2..14d3a17 100644 --- a/app/api/caddy/servers/route.ts +++ b/app/api/caddy/servers/route.ts @@ -1,5 +1,7 @@ import { NextResponse } from "next/server"; +export const dynamic = 'force-dynamic' + export async function GET(request: Request) { const res = await fetch(`${process.env.CADDY_API}/config/apps/http/servers/`, { cache: 'no-store' }); @@ -14,4 +16,4 @@ export async function GET(request: Request) { 'Content-Type': 'application/json', }, }); -} \ No newline at end of file +} diff --git a/lib/clientActions.ts b/lib/clientActions.ts index 99b1ad3..b2988d1 100644 --- a/lib/clientActions.ts +++ b/lib/clientActions.ts @@ -1,33 +1,31 @@ import useSWR from "swr"; -export async function useConfig() { +export function useConfig() { const { data, error, isLoading } = useSWR('/api/caddy/servers', fetcher); return { data, error, isLoading, } - } +} - export async function useServer() { +export function useServer() { const { data, error, isLoading } = useSWR('/api/caddy/servers', fetcher); return { data, error, isLoading, } - } +} - export async function useUpstreamRoutes(route: Route) { +export function useUpstreamRoutes(route: Route) { const { data, error, isLoading } = useSWR(`${process.env.CADDY_API}/reverse_proxy/upstreams`, fetcher); return { data, error, isLoading, - } - } - +} export function useRoutes() { const { data, error, isLoading } = useSWR('/api/caddy/routes', fetcher); return {