diff options
| author | joonhoekim <26rote@gmail.com> | 2025-08-14 00:26:53 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-08-14 00:26:53 +0000 |
| commit | dd20ba9785cdbd3d61f6b014d003d3bd9646ad13 (patch) | |
| tree | 4e99d62311a6c115dbc894084714a29c34bca11a /app/api | |
| parent | 33be47506f0aa62b969d82521580a29e95080268 (diff) | |
(고건) 리스크 관리 페이지 추가
Diffstat (limited to 'app/api')
| -rw-r--r-- | app/api/risks/send-risk-email/route.ts | 36 |
1 files changed, 36 insertions, 0 deletions
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 |
