import { Client, Account, Models } from "node-appwrite";
import { MongoClient } from "mongodb";
module.exports = async function (req: any, res: any) {
const client = new Client();
const user = req.variables["MONGODB_USER"];
const password = req.variables["MONGODB_PASSWORD"];
const hostname = req.variables["MONGODB_HOSTNAME"];
const mongoUri = `mongodb://${user}:${password}@${hostname}:27017/?authMechanism=DEFAULT`;
const mongoDbClient = new MongoClient(mongoUri);
let userId: string;
if (
!req.variables["APPWRITE_FUNCTION_ENDPOINT"] ||
!req.variables["APPWRITE_FUNCTION_API_KEY"]
) {
console.warn(
"Environment variables are not set. Function cannot use Appwrite SDK."
);
} else {
client
.setEndpoint(req.variables["APPWRITE_FUNCTION_ENDPOINT"])
.setProject(req.variables["APPWRITE_FUNCTION_PROJECT_ID"])
.setJWT(req.variables["APPWRITE_FUNCTION_JWT"])
.setSelfSigned(true);
}
const account = new Account(client);
let accountData: Models.Account<Models.Preferences>;
try {
accountData = await account.get();
} catch (error: any) {
console.log(error);
}
userId = accountData!.$id;
async function run() {
try {
await mongoDbClient.connect();
let reqPayloadObj = JSON.parse(req.payload ?? "{}");
console.log(reqPayloadObj);
const pipeline =
const coll = mongoDbClient.db("aticAR").collection("container_items");
let myContainerItems = await coll.aggregate(pipeline).toArray();
res.json(JSON.stringify(myContainerItems));
} catch(error: any){
res.json({'error': error.toString()});
console.log(error);
}
finally {
await mongoDbClient.close();
}
}
run();
};