
Hi , I keep getting “databases.upsertDocuments” or “createDocuments” function is not a valid appwrite function error . Following is a simple node.js code (modified for bug reporting purpose) Could you please investigate and let me know the root cause ? Thanks .
Execution id : 687e990ea3b4f735382a
import { Client, Databases, ID } from 'node-appwrite';
export default async ({ req, res, log, error }) => { let payload; try { payload = typeof req.body === 'string' ? JSON.parse(req.body) : req.body; } catch (err) { return res.json({ success: false, error: 'Invalid JSON', data: null }, 400); }
const { ast_id, room_id, type, score } = payload || {};
if (!ast_id || !room_id || !type || !score ) { return res.json( { success: false, error: 'Missing required parameters: ast_id, room_id, type, score, data: null }, 400 ); }
log(submit-prediction: ${JSON.stringify({ ast_id, room_id, type })}
);
const client = new Client() .setEndpoint(process.env.APPWRITE_ENDPOINT) .setProject( process.env.APPWRITE_FUNCTION_PROJECT_ID || process.env.APPWRITE_PROJECT_ID ) .setKey(req.headers['x-appwrite-key'] ?? ''); const databases = new Databases(client); const dbId = process.env.APPWRITE_DATABASE_ID;
try {
log(`Using score from payload: ${score}`);
const currentDate = new Date().toISOString().split('T')[0];
const documentId = `pred_${ast_id}_${room_id}_${type}_${currentDate}`
.replace(/[^a-zA-Z0-9_-]/g, '_')
const predictionDoc = await databases.upsertDocuments(
dbId,
'predictions',
[{
$id: documentId,
ast_id,
room_id,
type,
score
}]
);

So this is a type error you're getting in your ide?

What version of the package are you using?

{ "name": "submit-prediction", "version": "1.0.0", "description": "StarChat prediction submission function", "main": "src/main.js", "type": "module", "dependencies": { "node-appwrite": "^13.0.0" } }

Do we need any specific node version for this to work ?, in the function settings in appwrite console , I have the run time as Node 18.0

That error is not from IDE , that was from Appwrite function logs .

Can you provide the log and stack trace

node-appwrite@13 is pretty old, you'll want node-appwrite@17.1.0

that's probably your issue

upsert is new and wouldn't be available on an sdk from a year ago
Recommended threads
- 301 Redirects on OAuth Endpoints Breakin...
Hello, **Project ID**: 6878bf3f003760131a6d **Custom Domain**: api.hustleproof.app **Problem**: New users are unable to sign up via Google OAuth on my custom ...
- Nameserver IPs
I try to set up the nameservers for Appwrite on EUServ, however Appwrite's nameservers both have the same IP. EUServ wants at least two different IPs for the na...
- SSL Certificate Not Provisioning for Cus...
Hello! I need some help with my Appwrite Cloud project. Project ID: 6878bf3f003760131a6d Custom Domain: api.hustleproof.app Problem: I have correctly configur...
