- Implemented NoteForm for adding notes to projects. - Created ProjectForm for managing project details with contract selection. - Developed ProjectTaskForm for adding tasks to projects, supporting both templates and custom tasks. feat: Add ProjectTasksSection component - Introduced ProjectTasksSection to display and manage tasks for a specific project. - Includes functionality for adding, updating, and deleting tasks. feat: Create TaskTemplateForm for managing task templates - Added TaskTemplateForm for creating new task templates with required wait days. feat: Implement UI components - Created reusable UI components: Badge, Button, Card, Input, Loading, Navigation. - Enhanced user experience with consistent styling and functionality. feat: Set up database and queries - Initialized SQLite database with tables for contracts, projects, tasks, project tasks, and notes. - Implemented queries for managing contracts, projects, tasks, and notes. chore: Add error handling and loading states - Improved error handling in forms and data fetching. - Added loading states for better user feedback during data operations.
45 lines
1010 B
JavaScript
45 lines
1010 B
JavaScript
import db from "@/lib/db";
|
|
import { NextResponse } from "next/server";
|
|
|
|
export async function POST(req) {
|
|
const { project_id, task_id, note } = await req.json();
|
|
|
|
if (!note || (!project_id && !task_id)) {
|
|
return NextResponse.json({ error: "Missing fields" }, { status: 400 });
|
|
}
|
|
|
|
db.prepare(
|
|
`
|
|
INSERT INTO notes (project_id, task_id, note)
|
|
VALUES (?, ?, ?)
|
|
`
|
|
).run(project_id || null, task_id || null, note);
|
|
|
|
return NextResponse.json({ success: true });
|
|
}
|
|
|
|
export async function DELETE(_, { params }) {
|
|
const { id } = params;
|
|
|
|
db.prepare("DELETE FROM notes WHERE note_id = ?").run(id);
|
|
|
|
return NextResponse.json({ success: true });
|
|
}
|
|
|
|
export async function PUT(req, { params }) {
|
|
const noteId = params.id;
|
|
const { note } = await req.json();
|
|
|
|
if (!note || !noteId) {
|
|
return NextResponse.json({ error: "Missing note or ID" }, { status: 400 });
|
|
}
|
|
|
|
db.prepare(
|
|
`
|
|
UPDATE notes SET note = ? WHERE note_id = ?
|
|
`
|
|
).run(note, noteId);
|
|
|
|
return NextResponse.json({ success: true });
|
|
}
|