diff --git a/src/app/api/qna/notify/route.ts b/src/app/api/qna/notify/route.ts deleted file mode 100644 index 866b8cc..0000000 --- a/src/app/api/qna/notify/route.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { NextRequest, NextResponse } from 'next/server' -import { HttpStatusCode } from 'axios' -import { loggerWrapper } from '@/libs/api-wrapper' -import { sendEmail } from '@/libs/mailer' -import { prisma } from '@/libs/prisma' - -async function notify(request: NextRequest): Promise { - const formData = await request.formData() - const qnaClsLrgCd = formData.get('qnaCd') as string - - // 메일 발송 테스트용 파라미터. 테스트 완료 시 제거. - // 여러 수신자에게 발송 시 ', '(콤마)로 구분하여 입력 - const testReceivers = formData.get('testReceivers') as string - - /* 파라미터 체크 */ - if (qnaClsLrgCd === '') { - return NextResponse.json({ error: '필수 파라미터가 누락되었습니다' }, { status: HttpStatusCode.BadRequest }) - } - - try { - /* 수신자 조회 */ - const receivers: string[] = await getReceiver(qnaClsLrgCd) - console.log('receivers: ', receivers) - - /* 메일 전송 */ - await sendEmail({ - from: 'test@test.com', - // to: receivers, // 테스트 완료 시 주석 해제 - to: testReceivers, - subject: '메일 전송 테스트 제목', - content: '

메일 전송 테스트입니다.

', - }) - - return NextResponse.json('success') - } catch (error) { - console.error(`error : ${error}`) - return NextResponse.json({ error: `error : ${error}` }, { status: HttpStatusCode.InternalServerError }) - } -} - -/* 수신자 조회 */ -const getReceiver = async (qnaClsLrgCd: string): Promise => { - const query = ` - OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP; - SELECT CONVERT(NVARCHAR(100), DecryptByKey(bu.e_mail)) AS email - FROM BC_USER bu - WHERE bu.user_id IN ( - SELECT user_id - FROM SY_POLICY_U spu - WHERE policy_cd = ( - SELECT bcl.ref_chr2 - FROM BC_COMM_L bcl - WHERE bcl.head_cd = (SELECT head_cd FROM BC_COMM_H bch WHERE head_id = 'QNA_CLS_MID_CD') - AND bcl.ref_chr1 = '${qnaClsLrgCd}' - GROUP BY bcl.ref_chr2 - ) - ) - CLOSE SYMMETRIC KEY SYMMETRICKEY; - ` - const receivers: { email: string }[] = await prisma.$queryRawUnsafe(query) - return receivers.map((receiver) => receiver.email) -} - -export const POST = loggerWrapper(notify)