diff options
| author | 0-Zz-ang <s1998319@gmail.com> | 2025-11-13 11:36:15 +0900 |
|---|---|---|
| committer | 0-Zz-ang <s1998319@gmail.com> | 2025-11-13 11:36:15 +0900 |
| commit | a4ceade24d28af0bde985bf750017efc02f053ff (patch) | |
| tree | 45b03d3e6b5d36a60bea464e37155f0a18e73153 /app | |
| parent | 1cdbf77cabcead1a7f76379d3786ede6f43355fb (diff) | |
(박서영)준법설문조사 RedFlag관련 요청사항 반영
Diffstat (limited to 'app')
| -rw-r--r-- | app/api/upload/signed-contract/route.ts | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/app/api/upload/signed-contract/route.ts b/app/api/upload/signed-contract/route.ts index 880f54b2..a8e2bead 100644 --- a/app/api/upload/signed-contract/route.ts +++ b/app/api/upload/signed-contract/route.ts @@ -1,10 +1,11 @@ // app/api/upload/signed-contract/route.ts import { NextRequest, NextResponse } from 'next/server'; import db from "@/db/db"; -import { basicContract } from '@/db/schema'; +import { basicContract, vendors } from '@/db/schema'; import { eq } from 'drizzle-orm'; import { revalidateTag } from 'next/cache'; import { saveBuffer } from '@/lib/file-stroage'; +import { getTriggeredRedFlagQuestions, notifyComplianceRedFlagManagers } from '@/lib/compliance/red-flag-notifier'; export async function POST(request: NextRequest) { try { @@ -55,6 +56,30 @@ export async function POST(request: NextRequest) { .where(eq(basicContract.id, tableRowId)); }); + const [contractInfo] = await db + .select({ + templateId: basicContract.templateId, + vendorName: vendors.vendorName, + }) + .from(basicContract) + .leftJoin(vendors, eq(basicContract.vendorId, vendors.id)) + .where(eq(basicContract.id, tableRowId)) + .limit(1); + + try { + const triggeredRedFlags = await getTriggeredRedFlagQuestions(tableRowId); + if (triggeredRedFlags.length > 0) { + await notifyComplianceRedFlagManagers({ + contractId: tableRowId, + templateId: contractInfo?.templateId ?? null, + vendorName: contractInfo?.vendorName ?? undefined, + triggeredQuestions: triggeredRedFlags, + }); + } + } catch (error) { + console.error('레드플래그 알림 발송 실패:', error); + } + // 캐시 무효화 revalidateTag("basic-contract-requests"); revalidateTag("basicContractView-vendor"); |
