Files
dockhand/src/routes/api/settings/scanner/cache/+server.ts
T
2026-04-03 11:51:42 +02:00

41 lines
1.1 KiB
TypeScript

import { json, type RequestHandler } from '@sveltejs/kit';
import { cleanupScannerCache } from '$lib/server/scanner';
import { authorize } from '$lib/server/authorize';
import { getEnvironments } from '$lib/server/db';
export const DELETE: RequestHandler = async ({ cookies }) => {
const auth = await authorize(cookies);
if (auth.authEnabled && !await auth.can('settings', 'edit')) {
return json({ error: 'Permission denied' }, { status: 403 });
}
try {
const envs = await getEnvironments();
// Clean local cache (volumes + bind mount dirs)
const result = await cleanupScannerCache();
// Clean remote environment volumes
const skippedEnvs: string[] = [];
for (const env of envs) {
try {
const envResult = await cleanupScannerCache(env.id);
result.volumes.push(...envResult.volumes);
} catch {
skippedEnvs.push(env.name);
}
}
return json({
success: true,
removedVolumes: result.volumes,
removedDirs: result.dirs,
skippedEnvironments: skippedEnvs
});
} catch (error) {
console.error('Failed to clear scanner cache:', error);
return json({ error: 'Failed to clear scanner cache' }, { status: 500 });
}
};