Skip to content

Commit 6308558

Browse files
Merge pull request #354 from DevLoversTeam/sl/feat/quiz
fix(admin-quiz): invalidate quiz list cache on isActive/status change
2 parents 6f990c3 + 9d2fc92 commit 6308558

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

frontend/app/api/admin/quiz/[id]/route.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { count, eq } from 'drizzle-orm';
2+
import { revalidateTag } from 'next/cache';
23
import { NextRequest, NextResponse } from 'next/server';
34
import { z } from 'zod';
45

56
import { db } from '@/db';
6-
import { quizAttempts, quizzes, quizTranslations } from '@/db/schema/quiz';
7+
import { quizAttempts, quizTranslations,quizzes } from '@/db/schema/quiz';
78
import {
89
AdminApiDisabledError,
910
AdminForbiddenError,
@@ -12,10 +13,10 @@ import {
1213
} from '@/lib/auth/admin';
1314
import { logError } from '@/lib/logging';
1415
import { invalidateQuizCache } from '@/lib/quiz/quiz-answers-redis';
15-
import { validateQuizForPublish } from '@/lib/validation/quiz-publish-validation';
1616
import { requireAdminCsrf } from '@/lib/security/admin-csrf';
1717
import { guardBrowserSameOrigin } from '@/lib/security/origin';
1818
import { patchQuizSchema } from '@/lib/validation/admin-quiz';
19+
import { validateQuizForPublish } from '@/lib/validation/quiz-publish-validation';
1920

2021
export 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) {

frontend/db/queries/quizzes/quiz.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ export const getActiveQuizzes = cache(
197197
return rows;
198198
},
199199
['active-quizzes', locale],
200-
{ revalidate: 300 }
200+
{ revalidate: 300, tags: ['active-quizzes'] }
201201
);
202202

203203
return cached();

0 commit comments

Comments
 (0)