diff --git a/src/app/api/complete-upload/route.ts b/src/app/api/complete-upload/route.ts index c0f6e5a..60729f8 100644 --- a/src/app/api/complete-upload/route.ts +++ b/src/app/api/complete-upload/route.ts @@ -28,7 +28,7 @@ export async function POST(request: Request) { const connection = await pool.getConnection(); try { - const [result]: any = await connection.query( + const [result]: [{ affectedRows: number }, unknown] = await connection.query( 'UPDATE files SET token_hash = ?, expires_at = ? WHERE id = ?', [tokenHash, expiresAt, file_id] ); diff --git a/src/app/api/cron/cleanup/route.ts b/src/app/api/cron/cleanup/route.ts index fcfd7af..a77f03b 100644 --- a/src/app/api/cron/cleanup/route.ts +++ b/src/app/api/cron/cleanup/route.ts @@ -1,6 +1,14 @@ import { NextResponse } from 'next/server'; import pool from '@/lib/db'; +interface FileId { + id: string; +} + +interface FilePart { + discord_message_id: string | null; +} + if (!process.env.DISCORD_BOT_TOKEN || !process.env.DISCORD_CHANNEL_ID || !process.env.CRON_SECRET) { throw new Error('Discord or Cron secret environment variables are not configured'); } @@ -21,7 +29,7 @@ export async function POST(request: Request) { const staleTime = new Date(); staleTime.setHours(staleTime.getHours() - 24); // Older than 24 hours - const [incompleteFiles]: any[] = await connection.query( + const [incompleteFiles]: [FileId[], unknown] = await connection.query( 'SELECT id FROM files WHERE token_hash IS NULL AND upload_at <= ?', [staleTime] ); @@ -30,7 +38,7 @@ export async function POST(request: Request) { for (const file of incompleteFiles) { const file_id = file.id; - const [parts]: any[] = await connection.query('SELECT discord_message_id FROM file_parts WHERE file_id = ?', [file_id]); + const [parts]: [FilePart[], unknown] = await connection.query('SELECT discord_message_id FROM file_parts WHERE file_id = ?', [file_id]); if (parts.length > 0) { for (const part of parts) { @@ -58,7 +66,7 @@ export async function POST(request: Request) { } // --- 2. Cleanup for EXPIRED files --- - const [expiredFiles]: any[] = await connection.query( + const [expiredFiles]: [FileId[], unknown] = await connection.query( 'SELECT id FROM files WHERE expires_at <= NOW() AND deleted = 0' ); @@ -66,7 +74,7 @@ export async function POST(request: Request) { for (const file of expiredFiles) { const file_id = file.id; - const [partsRows]: any[] = await connection.query( + const [partsRows]: [FilePart[], unknown] = await connection.query( 'SELECT discord_message_id FROM file_parts WHERE file_id = ?', [file_id] ); diff --git a/src/app/download/[file_id]/page.tsx b/src/app/download/[file_id]/page.tsx index 4f2e7f1..19243e6 100644 --- a/src/app/download/[file_id]/page.tsx +++ b/src/app/download/[file_id]/page.tsx @@ -243,10 +243,10 @@ export default function DownloadPage() { {deleteState === 'idle' && ( )} {deleteState === 'deleting' && (