diff options
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 |
