From 1dc24d48e52f2e490f5603ceb02842586ecae533 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Thu, 24 Jul 2025 11:06:32 +0000 Subject: (대표님) 정기평가 피드백 반영, 설계 피드백 반영, (최겸) 기술영업 피드백 반영 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/upload/basicContract/complete/route.ts | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'app/api/upload/basicContract/complete') diff --git a/app/api/upload/basicContract/complete/route.ts b/app/api/upload/basicContract/complete/route.ts index 6398c5eb..b22e99f1 100644 --- a/app/api/upload/basicContract/complete/route.ts +++ b/app/api/upload/basicContract/complete/route.ts @@ -1,27 +1,24 @@ import { NextRequest, NextResponse } from 'next/server'; import { createBasicContractTemplate } from '@/lib/basic-contract/service'; import { revalidatePath ,revalidateTag} from 'next/cache'; +import { createBasicContractTemplateSchema } from '@/lib/basic-contract/validations'; export async function POST(request: NextRequest) { try { - const { templateName,validityPeriod, status, fileName, filePath } = await request.json(); + const json = await request.json(); + const parsed = createBasicContractTemplateSchema.safeParse(json); - if (!templateName || !fileName || !filePath) { - return NextResponse.json({ success: false, error: '필수 정보가 누락되었습니다' }, { status: 400 }); + if (!parsed.success) { + return NextResponse.json( + { success: false, error: parsed.error.flatten() }, + { status: 400 } + ); } - - // DB에 저장 - const { data, error } = await createBasicContractTemplate({ - templateName, - validityPeriod, - status, - fileName, - filePath - }); - + + const { data, error } = await createBasicContractTemplate(parsed.data); + revalidatePath('/evcp/basic-contract-templates'); - revalidatePath('/'); // 루트 경로 무효화도 시도 revalidateTag("basic-contract-templates"); if (error) { -- cgit v1.2.3