From afedb8df6c5889465d98f30da37b3ba6cacef95e Mon Sep 17 00:00:00 2001 From: Om Lanke Date: Tue, 23 Sep 2025 12:36:38 +0530 Subject: [PATCH] job description uploads --- .gitignore | 3 +++ apps/admin/app/(main)/jobs/new/actions.ts | 4 ++-- .../app/api/files/job-descriptions/[filename]/route.ts | 10 ++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 34c176f..a5bdd00 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +# shared uploads +shared/uploads + # Dependencies node_modules .pnp diff --git a/apps/admin/app/(main)/jobs/new/actions.ts b/apps/admin/app/(main)/jobs/new/actions.ts index 87f6684..44bd587 100644 --- a/apps/admin/app/(main)/jobs/new/actions.ts +++ b/apps/admin/app/(main)/jobs/new/actions.ts @@ -30,8 +30,8 @@ export async function createJob(formData: FormData) { if (descriptionFile && descriptionFile.size > 0) { try { - // Create uploads directory if it doesn't exist - const uploadsDir = join(process.cwd(), 'public', 'uploads', 'job-descriptions'); + // Create uploads directory in shared location if it doesn't exist + const uploadsDir = join(process.cwd(), 'shared', 'uploads', 'job-descriptions'); await mkdir(uploadsDir, { recursive: true }); // Generate unique filename diff --git a/apps/student/app/api/files/job-descriptions/[filename]/route.ts b/apps/student/app/api/files/job-descriptions/[filename]/route.ts index 1cca676..9e1479c 100644 --- a/apps/student/app/api/files/job-descriptions/[filename]/route.ts +++ b/apps/student/app/api/files/job-descriptions/[filename]/route.ts @@ -7,15 +7,20 @@ export async function GET( request: NextRequest, { params }: { params: { filename: string } } ) { + console.log("HELLO WORLD") try { - const filename = params.filename; + const { filename } = await params; // Security check - prevent directory traversal if (filename.includes('..') || filename.includes('/') || filename.includes('\\')) { return NextResponse.json({ error: 'Invalid filename' }, { status: 400 }); } - const filePath = join(process.cwd(), 'public', 'uploads', 'job-descriptions', filename); + // Look for files in the shared uploads directory (navigate to workspace root) + const workspaceRoot = join(process.cwd(), '..', '..'); + const filePath = join(workspaceRoot, 'shared', 'uploads', 'job-descriptions', filename); + + console.log('Looking for file at:', filePath); try { const fileBuffer = await readFile(filePath); @@ -37,6 +42,7 @@ export async function GET( return response; } catch (error) { + console.error('File not found:', error); return NextResponse.json({ error: 'File not found' }, { status: 404 }); } } catch (error) {