- Add Next.js frontend service (nextjs) with Dockerfile and source - Update docker-compose.yml: image names, Drupal 11.3.3, nextjs service - Add docker-compose.override.yml.disabled for dev hot-reload - Add install-headless-modules.sh for OAuth/JSON:API module setup - Add README.md with full setup and configuration guide - Update nginx/Dockerfile and nginx.conf.template for cms. subdomain - Update drupal/Dockerfile PHP-FPM build args - Gitignore **/.vscode/ to prevent IDE workspace files from being tracked
35 lines
918 B
TypeScript
35 lines
918 B
TypeScript
import { revalidatePath } from "next/cache"
|
|
import { NextRequest } from "next/server"
|
|
|
|
async function handler(request: NextRequest) {
|
|
const searchParams = request.nextUrl.searchParams
|
|
const secret = searchParams.get("secret")
|
|
const path = searchParams.get("path")
|
|
|
|
// Validate the revalidation secret.
|
|
if (secret !== process.env.DRUPAL_REVALIDATE_SECRET) {
|
|
return new Response("Invalid secret.", { status: 401 })
|
|
}
|
|
|
|
if (!path) {
|
|
return new Response("Missing path.", { status: 400 })
|
|
}
|
|
|
|
try {
|
|
revalidatePath(path)
|
|
return new Response(
|
|
JSON.stringify({ revalidated: true, now: Date.now() }),
|
|
{
|
|
status: 200,
|
|
headers: { "Content-Type": "application/json" },
|
|
}
|
|
)
|
|
} catch (error) {
|
|
return new Response(
|
|
JSON.stringify({ message: "Error revalidating.", error }),
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|
|
|
|
export { handler as GET, handler as POST }
|