11import { count , eq } from 'drizzle-orm' ;
2+ import { revalidateTag } from 'next/cache' ;
23import { NextRequest , NextResponse } from 'next/server' ;
34import { z } from 'zod' ;
45
56import { db } from '@/db' ;
6- import { quizAttempts , quizzes , quizTranslations } from '@/db/schema/quiz' ;
7+ import { quizAttempts , quizTranslations , quizzes } from '@/db/schema/quiz' ;
78import {
89 AdminApiDisabledError ,
910 AdminForbiddenError ,
@@ -12,10 +13,10 @@ import {
1213} from '@/lib/auth/admin' ;
1314import { logError } from '@/lib/logging' ;
1415import { invalidateQuizCache } from '@/lib/quiz/quiz-answers-redis' ;
15- import { validateQuizForPublish } from '@/lib/validation/quiz-publish-validation' ;
1616import { requireAdminCsrf } from '@/lib/security/admin-csrf' ;
1717import { guardBrowserSameOrigin } from '@/lib/security/origin' ;
1818import { patchQuizSchema } from '@/lib/validation/admin-quiz' ;
19+ import { validateQuizForPublish } from '@/lib/validation/quiz-publish-validation' ;
1920
2021export const runtime = 'nodejs' ;
2122
@@ -123,6 +124,7 @@ export async function PATCH(
123124 }
124125
125126 await invalidateQuizCache ( quizId ) ;
127+ revalidateTag ( 'active-quizzes' , 'default' ) ;
126128
127129 return noStoreJson ( { success : true , quiz : { id : quizId , status : status ?? quiz . status , isActive } } ) ;
128130 } catch ( error ) {
0 commit comments