// API route for getting and updating SMTP settings (protected by admin check) import { NextResponse } from 'next/server'; import { verifyAdmin } from '@/lib/actions/auth'; import { createAdminClient } from '@/lib/supabase/admin'; import { createClient } from '@/lib/supabase/server'; export async function GET() { try { await verifyAdmin(); } catch (err: any) { return NextResponse.json({ error: err.message || 'Not authenticated' }, { status: 401 }); } try { let client: any; try { client = createAdminClient(); } catch { client = await createClient(); } const { data, error } = await client .from('settings') .select('*') .eq('id', 'smtp') .maybeSingle(); if (error) { console.error('Error fetching SMTP settings:', error); return NextResponse.json({ settings: { host: '', port: 587, secure: false, user: '', pass: '' } }); } return NextResponse.json({ settings: data || { host: '', port: 587, secure: false, user: '', pass: '' } }); } catch (err: any) { console.error('SMTP settings GET error:', err); return NextResponse.json({ settings: { host: '', port: 587, secure: false, user: '', pass: '' } }); } } export async function POST(request: Request) { try { await verifyAdmin(); } catch (err: any) { return NextResponse.json({ error: err.message || 'Not authenticated' }, { status: 401 }); } try { let client: any; try { client = createAdminClient(); } catch { client = await createClient(); } const payload = await request.json(); const { error } = await client .from('settings') .upsert({ id: 'smtp', ...payload }); if (error) { console.error('Error saving SMTP settings:', error); return NextResponse.json({ error: error.message }, { status: 500 }); } return NextResponse.json({ message: 'SMTP settings saved' }); } catch (err: any) { console.error('SMTP settings POST error:', err); return NextResponse.json({ error: err.message || 'Fehler beim Speichern' }, { status: 500 }); } }