انا حليت مشكلة url لكن توجد مشكلة لم افهمها والتي هي ان دالة PATCH ترجع null بدل من تعديل اما دالة DELETE ترجع استجابة خاظئة ولم افهم ما مشكلة
import { connectDB } from "@/app/libs/connectDB";
import { NextRequest, NextResponse } from "next/server";
import Todos from "@/app/models/Todos";
import { authenticate } from "@/app/libs/authenticate";
import mongoose from "mongoose";
type Params = {
id: mongoose.Types.ObjectId;
}
export async function GET(request:NextRequest, {params} : {params: Params }){
try{
await connectDB();
const userId = await authenticate(request);
const task = await Todos.findOne({_id: params.id , userId});
return NextResponse.json({task})
}catch(e:any){
return NextResponse.json({error: e.message}, {status:500})
}
}
export async function PATCH(request:NextRequest , params:Params){
try{
await connectDB();
const {title , content} = await request.json();
const userId = await authenticate(request);
const taskUpdate = await Todos.findOneAndUpdate({_id: params.id , userId}, { title , content }, {new: true});
return NextResponse.json(taskUpdate);
}catch(e:any){
return NextResponse.json({error: e.message}, {status:500})
}
}
export async function DELETE(request:NextRequest , params:Params){
try{
await connectDB();
const userId = await authenticate(request);
const taskDelete = await Todos.findOneAndDelete({_id: params.id, userId});
if(!taskDelete){
return NextResponse.json({error: "Task not found"}, {status: 404});
}
return NextResponse.json(taskDelete);
}catch(e:any){
return NextResponse.json({error: e.message}, {status:500})
}
}