api route
import {
Client,
Databases,
Account,
ID,
Permission,
Role,
} from "node-appwrite";
import { cookies } from "next/headers";
export async function POST(request) {
try {
const cookie = cookies().get("my-custom-session");
const client = new Client()
.setEndpoint("https://cloud.appwrite.io/v1")
.setProject("...")
.setSession(cookie.value);
const account = new Account(client);
const databases = new Databases(client);
try {
const user = await account.get();
const userID = user.$id;
const data = await request.json();
const result = await databases.createDocument(
"...", // databaseId
"...", // collectionId
ID.unique(), // documentId
data,
[
Permission.read(Role.user(userID)),
Permission.write(Role.user(userID)),
],
);
console.log("Document created:", result);
return result;
} catch (err) {
console.log("Error in document creation:", err);
}
} catch (error) {
console.error("Error creating document:", error);
throw error;
}
}