28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server';
|
|
import { query } from '@/lib/db';
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
// POST: Bewertung speichern oder aktualisieren
|
|
export async function POST(req: NextRequest, { params }: { params: { id: string } }) {
|
|
try {
|
|
const { member_id, grade, comment } = await req.json();
|
|
if (!member_id || !grade) {
|
|
return NextResponse.json({ error: 'Mitreisender und Note erforderlich' }, { status: 400 });
|
|
}
|
|
|
|
const res = await query(
|
|
`INSERT INTO hotel_ratings (hotel_id, member_id, grade, comment, updated_at)
|
|
VALUES ($1, $2, $3, $4, NOW())
|
|
ON CONFLICT (hotel_id, member_id)
|
|
DO UPDATE SET grade = EXCLUDED.grade, comment = EXCLUDED.comment, updated_at = NOW()
|
|
RETURNING *`,
|
|
[params.id, member_id, grade, comment ? comment.trim() : null]
|
|
);
|
|
|
|
return NextResponse.json({ success: true, rating: res.rows[0] });
|
|
} catch (e: any) {
|
|
return NextResponse.json({ success: false, error: e.message }, { status: 500 });
|
|
}
|
|
}
|