Files
gitea-mirror/src/pages/api/cleanup/auto.ts

60 lines
1.6 KiB
TypeScript

/**
* API endpoint to manually trigger automatic cleanup
* This is useful for testing and debugging the cleanup service
*/
import type { APIRoute } from 'astro';
import { runAutomaticCleanup } from '@/lib/cleanup-service';
import { createSecureErrorResponse } from '@/lib/utils';
export const POST: APIRoute = async ({ request }) => {
try {
console.log('Manual cleanup trigger requested');
// Run the automatic cleanup
const results = await runAutomaticCleanup();
// Calculate totals
const totalEventsDeleted = results.reduce((sum, result) => sum + result.eventsDeleted, 0);
const totalJobsDeleted = results.reduce((sum, result) => sum + result.mirrorJobsDeleted, 0);
const errors = results.filter(result => result.error);
return new Response(
JSON.stringify({
success: true,
message: 'Automatic cleanup completed',
results: {
usersProcessed: results.length,
totalEventsDeleted,
totalJobsDeleted,
errors: errors.length,
details: results,
},
}),
{
status: 200,
headers: {
'Content-Type': 'application/json',
},
}
);
} catch (error) {
return createSecureErrorResponse(error, "cleanup trigger", 500);
}
};
export const GET: APIRoute = async () => {
return new Response(
JSON.stringify({
success: false,
message: 'Use POST method to trigger cleanup',
}),
{
status: 405,
headers: {
'Content-Type': 'application/json',
},
}
);
};