From dd20ba9785cdbd3d61f6b014d003d3bd9646ad13 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Thu, 14 Aug 2025 00:26:53 +0000 Subject: (고건) 리스크 관리 페이지 추가 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/risks/send-risk-email/route.ts | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/api/risks/send-risk-email/route.ts (limited to 'app/api') diff --git a/app/api/risks/send-risk-email/route.ts b/app/api/risks/send-risk-email/route.ts new file mode 100644 index 00000000..e21bc68d --- /dev/null +++ b/app/api/risks/send-risk-email/route.ts @@ -0,0 +1,36 @@ +/* IMPORT */ +import { NextResponse } from 'next/server'; +import { sendRiskEmail } from '@/lib/risk-management/service'; + +// ---------------------------------------------------------------------------------------------------- + +/* HANDLER FOR POST REQUEST */ +export async function POST(req: Request) { + try { + const formData = await req.formData(); + const vendorId = Number(formData.get('vendorId')); + const managerId = Number(formData.get('managerId')); + const adminComment = String(formData.get('adminComment')); + const selectedEventTypeMapJson = formData.get('selectedEventTypeMap') as string | null; + const selectedEventTypeMap = selectedEventTypeMapJson ? JSON.parse(selectedEventTypeMapJson) : {}; + const file = formData.get('attachment') as File | null; + + let attachment = undefined; + if (file) { + const arrayBuffer = await file.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + + attachment = { + filename: file.name, + content: buffer, + }; + } + + await sendRiskEmail(vendorId, managerId, adminComment, selectedEventTypeMap, attachment); + + return NextResponse.json({ message: '메일 전송 성공' }); + } catch (error) { + console.error('메일 전송 실패:', error); + return NextResponse.json({ message: '메일 전송 중 오류 발생' }, { status: 500 }); + } +} \ No newline at end of file -- cgit v1.2.3