From bc7d627f61a4d055b19d0679b3a4c128b7afcfda Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 28 May 2025 17:29:43 +0000 Subject: (대표님) admin / api / components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/admin/clear-test-data/route.ts | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 app/api/admin/clear-test-data/route.ts (limited to 'app/api/admin') diff --git a/app/api/admin/clear-test-data/route.ts b/app/api/admin/clear-test-data/route.ts new file mode 100644 index 00000000..9a5c8458 --- /dev/null +++ b/app/api/admin/clear-test-data/route.ts @@ -0,0 +1,60 @@ +// app/api/admin/clear-test-data/route.ts +import db from '@/db/db' +import { formEntries, forms, formMetas, tags } from '@/db/schema/vendorData' +import { NextRequest } from 'next/server' + +export async function DELETE(request: NextRequest) { + + try { + // 외래키 참조 순서를 고려하여 삭제 (자식 테이블부터) + console.log('Clearing test data...') + + // 1. form_entries 삭제 + const deletedEntries = await db.delete(formEntries) + console.log('Deleted form entries') + + // 2. tags 삭제 + const deletedTags = await db.delete(tags) + console.log('Deleted tags') + + // 3. forms 삭제 + const deletedForms = await db.delete(forms) + console.log('Deleted forms') + + // 4. form_metas 삭제 + const deletedMetas = await db.delete(formMetas) + console.log('Deleted form metas') + + return Response.json({ + success: true, + message: 'All test data cleared successfully', + deleted: { + formEntries: deletedEntries, + tags: deletedTags, + forms: deletedForms, + formMetas: deletedMetas + } + }) + } catch (error) { + console.error('Error clearing test data:', error) + return Response.json({ + error: 'Failed to clear data', + details: error instanceof Error ? error.message : 'Unknown error' + }, { status: 500 }) + } +} + +// GET 요청도 지원 (브라우저에서 직접 접근 시) +export async function GET() { + if (process.env.NODE_ENV !== 'development') { + return Response.json({ + error: 'Not allowed in production' + }, { status: 403 }) + } + + return Response.json({ + message: 'Use DELETE method to clear test data', + endpoint: '/api/admin/clear-test-data', + method: 'DELETE' + }) +} \ No newline at end of file -- cgit v1.2.3