import { NextRequest, NextResponse } from 'next/server'; import { getDataSource, EmailTemplate } from '@/lib/database'; // GET /api/email-templates - Get all email templates export async function GET(request: NextRequest) { try { const dataSource = await getDataSource(); const emailTemplateRepository = dataSource.getRepository(EmailTemplate); const emailTemplates = await emailTemplateRepository.find({ order: { createdAt: 'DESC' } }); return NextResponse.json(emailTemplates); } catch (error) { console.error('Error fetching email templates:', error); return NextResponse.json( { error: 'Failed to fetch email templates' }, { status: 500 } ); } } // POST /api/email-templates - Create a new email template export async function POST(request: NextRequest) { try { const dataSource = await getDataSource(); const emailTemplateRepository = dataSource.getRepository(EmailTemplate); const data = await request.json(); const { title, content } = data; // Validate required fields if (!title || !content) { return NextResponse.json( { error: 'Title and content are required' }, { status: 400 } ); } // Create and save the new email template const emailTemplate = new EmailTemplate(); emailTemplate.title = title; emailTemplate.content = content; const savedEmailTemplate = await emailTemplateRepository.save(emailTemplate); return NextResponse.json(savedEmailTemplate, { status: 201 }); } catch (error) { console.error('Error creating email template:', error); return NextResponse.json( { error: 'Failed to create email template' }, { status: 500 } ); } }