Files
portfolio/app/api/projects/search/route.ts
denshooter 4029cd660d
All checks were successful
Production Deployment (Zero Downtime) / deploy-production (push) Successful in 14m27s
fix: Switch projects to Directus, add security fixes and example projects
2026-02-09 16:40:08 +01:00

40 lines
1.2 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
import { getProjects } from '@/lib/directus';
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url);
const slug = searchParams.get('slug');
const search = searchParams.get('search');
const category = searchParams.get('category');
const locale = searchParams.get('locale') || 'en';
// Use Directus instead of Prisma
const projects = await getProjects(locale, {
featured: undefined,
published: true,
category: category && category !== 'All' ? category : undefined,
search: search || undefined,
});
if (!projects) {
// Directus not available or no projects found
return NextResponse.json({ projects: [] });
}
// Filter by slug if provided (since Directus query doesn't support slug filter directly)
if (slug) {
const project = projects.find(p => p.slug === slug);
return NextResponse.json({ projects: project ? [project] : [] });
}
return NextResponse.json({ projects });
} catch (error) {
console.error('Error searching projects:', error);
return NextResponse.json(
{ error: 'Failed to search projects' },
{ status: 500 }
);
}
}