fix: purge cache when info is changed

This commit is contained in:
trafficlunar 2026-04-25 15:52:20 +01:00
parent e8249154d9
commit c24cc3dc01
4 changed files with 34 additions and 1 deletions

View file

@ -30,5 +30,14 @@ export async function POST(request: NextRequest) {
return rateLimit.sendResponse({ error: "Failed to update description" }, 500); return rateLimit.sendResponse({ error: "Failed to update description" }, 500);
} }
// Tell Cloudflare to purge cache
fetch(`https://api.cloudflare.com/client/v4/zones/${process.env.CLOUDFLARE_ZONE_ID}/purge_cache`, {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({
files: [`${process.env.NEXT_PUBLIC_BASE_URL}/api/profile/${session.user?.id}/info`],
}),
});
return rateLimit.sendResponse({ success: true }); return rateLimit.sendResponse({ success: true });
} }

View file

@ -33,5 +33,14 @@ export async function POST(request: NextRequest) {
return rateLimit.sendResponse({ error: "Failed to update name" }, 500); return rateLimit.sendResponse({ error: "Failed to update name" }, 500);
} }
// Tell Cloudflare to purge cache
fetch(`https://api.cloudflare.com/client/v4/zones/${process.env.CLOUDFLARE_ZONE_ID}/purge_cache`, {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({
files: [`${process.env.NEXT_PUBLIC_BASE_URL}/api/profile/${session.user.id}/info`],
}),
});
return rateLimit.sendResponse({ success: true }); return rateLimit.sendResponse({ success: true });
} }

View file

@ -81,5 +81,17 @@ export async function POST(request: NextRequest) {
return rateLimit.sendResponse({ error: "Failed to update profile picture" }, 500); return rateLimit.sendResponse({ error: "Failed to update profile picture" }, 500);
} }
// Tell Cloudflare to purge cache
fetch(`https://api.cloudflare.com/client/v4/zones/${process.env.CLOUDFLARE_ZONE_ID}/purge_cache`, {
method: "POST",
headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({
files: [
`${process.env.NEXT_PUBLIC_BASE_URL}/api/profile/${session.user?.id}/info`,
`${process.env.NEXT_PUBLIC_BASE_URL}/profile/${session.user?.id}/picture`,
],
}),
});
return rateLimit.sendResponse({ success: true }); return rateLimit.sendResponse({ success: true });
} }

View file

@ -266,9 +266,12 @@ export async function POST(request: NextRequest, { params }: { params: Promise<{
headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json" }, headers: { Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({ body: JSON.stringify({
files: [ files: [
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}`, `${process.env.NEXT_PUBLIC_BASE_URL}/api/mii/${miiId}/info`,
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=mii`, `${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=mii`,
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=features`, `${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=features`,
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=image0`,
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=image1`,
`${process.env.NEXT_PUBLIC_BASE_URL}/mii/${miiId}/image?type=image2`,
], ],
}), }),
}).catch((err) => { }).catch((err) => {