I’m new to typescript and I’m stuck with this error. what is the problem here and what should I do?
No overload matches this call.
Overload 1 of 4, ‘(filter: Filter, update: UpdateFilter, options: FindOneAndUpdateOptions & { includeResultMetadata: true; }): Promise<…>’, gave the following error.
Type ‘{ friends: { username: string; }; }’ is not assignable to type ‘PullOperator’.
Type ‘{ friends: { username: string; }; }’ is not assignable to type ‘NotAcceptedFields<Document, readonly any[]>’.
Property ‘friends’ is incompatible with index signature.
Type ‘{ username: string; }’ is not assignable to type ‘undefined’.
Overload 2 of 4, ‘(filter: Filter, update: UpdateFilter, options: FindOneAndUpdateOptions & { includeResultMetadata: false; }): Promise<…>’, gave the following error.
import { NextRequest, NextResponse } from "next/server";
import { findUserDetails } from "@/app/helpers/FindUserId";
import client from "@/lib/db";
export async function DELETE(req: NextRequest) {
try {
const { username, loggedInUsername }: {username: string, loggedInUsername: string} = await req.json();
if (!username || !loggedInUsername) {
return NextResponse.json(
{ error: "Username and LoggedInUsername are required" },
{ status: 400 }
);
}
const db = client.db();
const deletedFromLoggedInUserDocument = await db.collection("users").findOneAndUpdate(
{ username: loggedInUsername },
{ $pull: { friends: { username: username } } },
{ returnDocument: "after" }
);
const deletedFromUserDocument = await db.collection("users").findOneAndUpdate(
{ username: username },
{
$pull: { friends: { username: loggedInUsername } },
$set: { updatedAt: new Date() },
},
{ returnDocument: "after" }
);
if (!deletedFromLoggedInUserDocument.value || !deletedFromUserDocument.value) {
return NextResponse.json(
{ error: "Failed to update the user's friends list" },
{ status: 500 }
);
}
return NextResponse.json({ message: "Friend deleted successfully" }, { status: 200 });
} catch (error) {
console.error("Error updating user's friends list:", error);
return NextResponse.json(
{ error: "An internal server error occurred" },
{ status: 500 }
);
}
}