add a "GetCollections" function
This commit is contained in:
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
9
.idea/appwrite-generated-ui.iml
generated
Normal file
9
.idea/appwrite-generated-ui.iml
generated
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/appwrite-generated-ui.iml" filepath="$PROJECT_DIR$/.idea/appwrite-generated-ui.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
21
appwrite.json
Normal file
21
appwrite.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"projectId": "62f5ccd6af025a76edb0",
|
||||
"projectName": "generated-ui-proto",
|
||||
"functions": [
|
||||
{
|
||||
"$id": "getCollections",
|
||||
"name": "Get Collections",
|
||||
"runtime": "node-16.0",
|
||||
"path": "functions/Get Collections",
|
||||
"entrypoint": "src/index.js",
|
||||
"ignore": [
|
||||
"node_modules",
|
||||
".npm"
|
||||
],
|
||||
"execute": [],
|
||||
"events": [],
|
||||
"schedule": "",
|
||||
"timeout": 15
|
||||
}
|
||||
]
|
||||
}
|
149
functions/Get Collections/.gitignore
vendored
Normal file
149
functions/Get Collections/.gitignore
vendored
Normal file
@ -0,0 +1,149 @@
|
||||
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/node
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=node
|
||||
|
||||
### Node ###
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional stylelint cache
|
||||
.stylelintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# vuepress v2.x temp and cache directory
|
||||
.temp
|
||||
|
||||
# Docusaurus cache and generated files
|
||||
.docusaurus
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
|
||||
### Node Patch ###
|
||||
# Serverless Webpack directories
|
||||
.webpack/
|
||||
|
||||
# Optional stylelint cache
|
||||
|
||||
# SvelteKit build / generate output
|
||||
.svelte-kit
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/node
|
||||
|
||||
# OS
|
||||
## Mac
|
||||
.DS_Store
|
114
functions/Get Collections/README.md
Normal file
114
functions/Get Collections/README.md
Normal file
@ -0,0 +1,114 @@
|
||||
# Get Collections
|
||||
|
||||
Gets a list of all the collections for the configured database.
|
||||
|
||||
## 🤖 Documentation
|
||||
|
||||
Simple function similar to typical "hello world" example, but instead, we return a simple JSON that tells everyone how awesome developers are.
|
||||
|
||||
<!-- Update with your description, for example 'Create Stripe payment and return payment URL' -->
|
||||
|
||||
_Example input:_
|
||||
|
||||
This function expects no input
|
||||
|
||||
<!-- If input is expected, add example -->
|
||||
|
||||
_Example output:_
|
||||
|
||||
<!-- Update with your expected output -->
|
||||
|
||||
```json
|
||||
{
|
||||
"total":1,
|
||||
"collections":[{"$id":"62f5d20fa7b5d8dc341b",
|
||||
"$createdAt":1660277263,
|
||||
"$updatedAt":1660277425,
|
||||
"$read":[],
|
||||
"$write":[],
|
||||
"databaseId":"62f5d0b37b7d4b8716ac",
|
||||
"name":"tasks",
|
||||
"enabled":true,
|
||||
"permission":"document",
|
||||
"attributes":[
|
||||
{
|
||||
"key":"name",
|
||||
"type":"string",
|
||||
"status":"available",
|
||||
"required":true,
|
||||
"array":false,
|
||||
"size":255,
|
||||
"default":null
|
||||
},
|
||||
{
|
||||
"key":"completed",
|
||||
"type":"boolean",
|
||||
"status":"available",
|
||||
"required":true,
|
||||
"array":false,
|
||||
"default":null
|
||||
}
|
||||
],
|
||||
"indexes":[
|
||||
{
|
||||
"key":"completed_index",
|
||||
"type":"key",
|
||||
"status":"available",
|
||||
"attributes":[
|
||||
"completed"
|
||||
],
|
||||
"orders":[
|
||||
"ASC"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"updated_at_index",
|
||||
"type":"key",
|
||||
"status":"available",
|
||||
"attributes":[
|
||||
"$updatedAt"
|
||||
],
|
||||
"orders":[
|
||||
"ASC"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key":"name_index",
|
||||
"type":"fulltext",
|
||||
"status":"available",
|
||||
"attributes":[
|
||||
"name"
|
||||
],
|
||||
"orders":[
|
||||
"ASC"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 📝 Environment Variables
|
||||
|
||||
List of environment variables used by this cloud function:
|
||||
|
||||
- **APPWRITE_FUNCTION_ENDPOINT** - Endpoint of Appwrite project
|
||||
- **APPWRITE_FUNCTION_API_KEY** - Appwrite API Key
|
||||
- **APPWRITE_FUNCTION_PROJECT_ID** - Appwrite Project ID
|
||||
- **DATABASE_ID** - Appwrite Database ID
|
||||
<!-- Add your custom environment variables -->
|
||||
|
||||
## 🚀 Deployment
|
||||
|
||||
There are two ways of deploying the Appwrite function, both having the same results, but each using a different process. We highly recommend using CLI deployment to achieve the best experience.
|
||||
|
||||
### Using CLI
|
||||
|
||||
Make sure you have [Appwrite CLI](https://appwrite.io/docs/command-line#installation) installed, and you have successfully logged into your Appwrite server. To make sure Appwrite CLI is ready, you can use the command `appwrite client --debug` and it should respond with green text `✓ Success`.
|
||||
|
||||
Make sure you are in the same folder as your `appwrite.json` file and run `appwrite deploy function` to deploy your function. You will be prompted to select which functions you want to deploy.
|
||||
|
||||
### Manual using tar.gz
|
||||
|
||||
Manual deployment has no requirements and uses Appwrite Console to deploy the tag. First, enter the folder of your function. Then, create a tarball of the whole folder and gzip it. After creating `.tar.gz` file, visit Appwrite Console, click on the `Deploy Tag` button and switch to the `Manual` tab. There, set the `entrypoint` to `src/index.js`, and upload the file we just generated.
|
175
functions/Get Collections/package-lock.json
generated
Normal file
175
functions/Get Collections/package-lock.json
generated
Normal file
@ -0,0 +1,175 @@
|
||||
{
|
||||
"name": "appwrite-function",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "appwrite-function",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"node-appwrite": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "0.27.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.14.9",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||
}
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"debug": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/node-appwrite": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/node-appwrite/-/node-appwrite-7.0.2.tgz",
|
||||
"integrity": "sha512-qFahgNKk0qfzoL8/a2v1p/9+EsEuKNutxZqZSlweYi5q4jK3jJDcQZyoPI+B76zmLbYpk7q0zO5LrbfVVkI/kg==",
|
||||
"dependencies": {
|
||||
"axios": "^0.27.2",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.27.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.14.9",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"requires": {
|
||||
"mime-db": "1.52.0"
|
||||
}
|
||||
},
|
||||
"node-appwrite": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/node-appwrite/-/node-appwrite-7.0.2.tgz",
|
||||
"integrity": "sha512-qFahgNKk0qfzoL8/a2v1p/9+EsEuKNutxZqZSlweYi5q4jK3jJDcQZyoPI+B76zmLbYpk7q0zO5LrbfVVkI/kg==",
|
||||
"requires": {
|
||||
"axios": "^0.27.2",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
15
functions/Get Collections/package.json
Normal file
15
functions/Get Collections/package.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "get-collections",
|
||||
"version": "1.0.0",
|
||||
"description": "Gets a list of collections for the configured database.",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"node-appwrite": "^7.0.0"
|
||||
}
|
||||
}
|
44
functions/Get Collections/src/index.js
Normal file
44
functions/Get Collections/src/index.js
Normal file
@ -0,0 +1,44 @@
|
||||
const sdk = require("node-appwrite");
|
||||
|
||||
/*
|
||||
'req' variable has:
|
||||
'headers' - object with request headers
|
||||
'payload' - object with request body data
|
||||
'env' - object with environment variables
|
||||
|
||||
'res' variable has:
|
||||
'send(text, status)' - function to return text response. Status code defaults to 200
|
||||
'json(obj, status)' - function to return JSON response. Status code defaults to 200
|
||||
|
||||
If an error is thrown, a response with code 500 will be returned.
|
||||
*/
|
||||
|
||||
module.exports = async function (req, res) {
|
||||
const client = new sdk.Client();
|
||||
|
||||
// You can remove services you don't use
|
||||
// let account = new sdk.Account(client);
|
||||
// let avatars = new sdk.Avatars(client);
|
||||
// let functions = new sdk.Functions(client);
|
||||
// let health = new sdk.Health(client);
|
||||
// let storage = new sdk.Storage(client);
|
||||
// let teams = new sdk.Teams(client);
|
||||
// let users = new sdk.Users(client);
|
||||
|
||||
if (
|
||||
!req.env['APPWRITE_FUNCTION_ENDPOINT'] ||
|
||||
!req.env['APPWRITE_FUNCTION_API_KEY']
|
||||
) {
|
||||
console.warn("Environment variables are not set. Function cannot use Appwrite SDK.");
|
||||
throw new Error('Environment not set up');
|
||||
} else {
|
||||
client
|
||||
.setEndpoint(req.env['APPWRITE_FUNCTION_ENDPOINT'])
|
||||
.setProject(req.env['APPWRITE_FUNCTION_PROJECT_ID'])
|
||||
.setKey(req.env['APPWRITE_FUNCTION_API_KEY']);
|
||||
}
|
||||
let database = new sdk.Databases(client, req.env['DATABASE_ID']);
|
||||
// let locale = new sdk.Locale(client);
|
||||
let collections = await database.listCollections();
|
||||
res.json(collections);
|
||||
};
|
Reference in New Issue
Block a user