34 lines
930 B
TypeScript
34 lines
930 B
TypeScript
import { NextResponse } from 'next/server';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
export interface Category {
|
|
value: string;
|
|
label: string;
|
|
}
|
|
|
|
// GET /api/categories - Fetch categories from categories.txt
|
|
export async function GET() {
|
|
try {
|
|
const filePath = path.join(process.cwd(), 'categories.txt');
|
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
|
|
const categories: Category[] = content
|
|
.split('\n')
|
|
.map((line) => line.trim())
|
|
.filter((line) => line.includes('='))
|
|
.map((line) => {
|
|
const [value, label] = line.split('=');
|
|
return { value: value.trim(), label: label.trim() };
|
|
});
|
|
|
|
return NextResponse.json({ success: true, data: categories });
|
|
} catch (error) {
|
|
console.error('Error reading categories:', error);
|
|
return NextResponse.json(
|
|
{ success: false, error: 'Could not load categories' },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|