diff --git a/package.json b/package.json index 2b4f78a..e3a5ca9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-weekly-todo-list", - "version": "1.87.1", + "version": "1.87.2", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "main": "index.js", "scripts": { diff --git a/src/app/api/user/export-data/route.ts b/src/app/api/user/export-data/route.ts index 9b5d647..3446600 100644 --- a/src/app/api/user/export-data/route.ts +++ b/src/app/api/user/export-data/route.ts @@ -79,6 +79,14 @@ export async function GET() { parentTaskId: true, somedaySlotIndex: true, projectId: true, + kanbanStage: true, + url: true, + urgency: true, + importance: true, + priority: true, + delegatedTo: true, + delegationNote: true, + recurrenceDays: true, }, }); diff --git a/src/app/api/user/import-data/route.ts b/src/app/api/user/import-data/route.ts index f4aff99..4d2a572 100644 --- a/src/app/api/user/import-data/route.ts +++ b/src/app/api/user/import-data/route.ts @@ -22,11 +22,19 @@ interface ImportTask { recurrenceUnit?: string | null; recurrenceTime?: string | null; recurrenceEndDate?: string | null; + recurrenceDays?: string | null; createdAt?: string; updatedAt?: string; parentTaskId?: string | null; somedaySlotIndex?: number | null; projectId?: string | null; + kanbanStage?: string | null; + url?: string | null; + urgency?: boolean | null; + importance?: boolean | null; + priority?: string | null; + delegatedTo?: string | null; + delegationNote?: string | null; subTasks?: ImportTask[]; } @@ -166,7 +174,7 @@ export async function POST(request: Request) { const created = await prisma.task.create({ data: { userId: user.id, - title: task.title, + title: task.title || '(untitled)', description: task.description ?? null, markdownContent: task.markdownContent ?? null, completed: task.completed ?? false, @@ -183,8 +191,16 @@ export async function POST(request: Request) { recurrenceUnit: task.recurrenceUnit ?? null, recurrenceTime: task.recurrenceTime ?? null, recurrenceEndDate: task.recurrenceEndDate ? new Date(task.recurrenceEndDate) : null, + recurrenceDays: task.recurrenceDays ?? null, somedaySlotIndex: task.somedaySlotIndex ?? null, projectId: resolvedProjectId ?? null, + kanbanStage: task.kanbanStage ?? null, + url: task.url ?? null, + urgency: task.urgency ?? null, + importance: task.importance ?? null, + priority: task.priority ?? null, + delegatedTo: task.delegatedTo ?? null, + delegationNote: task.delegationNote ?? null, }, }); @@ -242,9 +258,12 @@ export async function POST(request: Request) { }); } catch (error) { console.error('Import data error:', error); - const message = error instanceof SyntaxError - ? 'Invalid JSON file' - : 'Import failed. Please check the file format.'; + let message = 'Import failed. Please check the file format.'; + if (error instanceof SyntaxError) { + message = 'Invalid JSON file'; + } else if (error instanceof Error) { + message = `Import failed: ${error.message}`; + } return NextResponse.json({ error: message }, { status: 500 }); } }