Yvonne Priscilla
update hardskills, export, calculate e2e
fb2a8ad
import { prisma } from "@/lib/prisma";
import { NextResponse } from "next/server";
export async function GET() {
try {
const profiles = await prisma.cv_profile.findMany({
select: {
domicile: true,
hardskills: true,
softskills: true,
certifications: true,
business_domain: true,
univ_edu_1: true,
univ_edu_2: true,
univ_edu_3: true,
major_edu_1: true,
major_edu_2: true,
major_edu_3: true,
},
});
// Flatten and deduplicate array fields
const unique = (arr: (string | null)[]) =>
[...new Set(arr.filter(Boolean))].sort() as string[];
const flatArray = (key: keyof typeof profiles[0]) =>
unique(profiles.flatMap((p) => p[key] as string[]));
const options = {
domicile: unique(profiles.map((p) => p.domicile)),
softskills: flatArray("softskills"),
hardskills: flatArray("hardskills"),
certifications: flatArray("certifications"),
business_domain: flatArray("business_domain"),
univ_edu: unique([
...profiles.map((p) => p.univ_edu_1),
...profiles.map((p) => p.univ_edu_2),
...profiles.map((p) => p.univ_edu_3),
]),
major_edu: unique([
...profiles.map((p) => p.major_edu_1),
...profiles.map((p) => p.major_edu_2),
...profiles.map((p) => p.major_edu_3),
]),
};
return NextResponse.json(options);
} catch (error) {
console.error(error);
return NextResponse.json({ error: "Failed to fetch options" }, { status: 500 });
}
}