summaryrefslogtreecommitdiff
path: root/app/api/admin
diff options
context:
space:
mode:
Diffstat (limited to 'app/api/admin')
-rw-r--r--app/api/admin/clear-test-data/route.ts60
1 files changed, 60 insertions, 0 deletions
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