const { Client, Storage, Query, Permission } = require("node-appwrite")
module.exports = async function (req, res) {
const client = new Client()
const storage = new Storage(client)
client.setEndpoint(req.variables.APPWRITE_FUNCTION_ENDPOINT)
.setProject(req.variables.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(req.variables.APPWRITE_FUNCTION_API_KEY)
const user = req.variables.APPWRITE_FUNCTION_EVENT_DATA
const { userId } = JSON.parse(user)
const bucketId = `user-${userId}`
const list = await storage.listBuckets([Query.equal("$id", [bucketId])])
if (list.total) {
res.send(`Bucket ${bucketId} already exists`, 409)
return
}
const bucket = await storage.createBucket(bucketId, bucketId, [
Permission.read(Role.user(userId)),
Permission.write(Role.user(userId)),
Permission.delete(Role.user(userId))
], true)
res.json(bucket, 201)
}