#Bulk API upsert or Create documents function error

1 messages · Page 1 of 1 (latest)

formal finch
#

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
  }]
);
marble gale
#

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

#

What version of the package are you using?

formal finch
#

{
"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 .

marble gale
#

Can you provide the log and stack trace

marble gale
#

that's probably your issue

#

upsert is new and wouldn't be available on an sdk from a year ago