node-appwrite
Advanced tools
Comparing version
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = database.createDocument('[COLLECTION_ID]', {}, [], []); | ||
let promise = database.createDocument('[COLLECTION_ID]', {}); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = database.updateCollection('[COLLECTION_ID]', '[NAME]', [], []); | ||
let promise = database.updateCollection('[COLLECTION_ID]', '[NAME]'); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = database.updateDocument('[COLLECTION_ID]', '[DOCUMENT_ID]', {}, [], []); | ||
let promise = database.updateDocument('[COLLECTION_ID]', '[DOCUMENT_ID]', {}); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = functions.create('[NAME]', [], 'node-14.5'); | ||
let promise = functions.create('[NAME]', [], 'dotnet-3.1'); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
@@ -15,3 +15,3 @@ const sdk = require('node-appwrite'); | ||
let promise = storage.createFile(fs.createReadStream(__dirname + '/file.png')), [], []); | ||
let promise = storage.createFile(fs.createReadStream(__dirname + '/file.png'))); | ||
@@ -18,0 +18,0 @@ promise.then(function (response) { |
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = teams.deleteMembership('[TEAM_ID]', '[INVITE_ID]'); | ||
let promise = teams.deleteMembership('[TEAM_ID]', '[MEMBERSHIP_ID]'); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
@@ -14,3 +14,3 @@ const sdk = require('node-appwrite'); | ||
let promise = users.updateStatus('[USER_ID]', '1'); | ||
let promise = users.updateStatus('[USER_ID]', 1); | ||
@@ -17,0 +17,0 @@ promise.then(function (response) { |
const Client = require('./lib/client.js'); | ||
const AppwriteException = require('./lib/exception.js'); | ||
const Account = require('./lib/services/account.js'); | ||
const Avatars = require('./lib/services/avatars.js'); | ||
@@ -15,2 +16,3 @@ const Database = require('./lib/services/database.js'); | ||
AppwriteException, | ||
Account, | ||
Avatars, | ||
@@ -17,0 +19,0 @@ Database, |
@@ -12,3 +12,4 @@ const URL = require('url').URL; | ||
'content-type': '', | ||
'x-sdk-version': 'appwrite:nodejs:2.1.0', | ||
'x-sdk-version': 'appwrite:nodejs:2.2.0', | ||
'X-Appwrite-Response-Format' : '0.8.0', | ||
}; | ||
@@ -49,2 +50,17 @@ this.selfSigned = false; | ||
/** | ||
* Set JWT | ||
* | ||
* Your secret JSON Web Token | ||
* | ||
* @param string value | ||
* | ||
* @return self | ||
*/ | ||
setJWT(value) { | ||
this.addHeader('X-Appwrite-JWT', value); | ||
return this; | ||
} | ||
/** | ||
* Set Locale | ||
@@ -135,4 +151,8 @@ * | ||
if('response' in error) { | ||
if('data' in error.response) { | ||
throw new AppwriteException(error.response.data.message, error.response.status, error.response.data); | ||
if(error.response && 'data' in error.response) { | ||
if (typeof(error.response.data) === 'string') { | ||
throw new AppwriteException(error.response.data, error.response.status, error.response.data); | ||
} else { | ||
throw new AppwriteException(error.response.data.message, error.response.status, error.response.data); | ||
} | ||
}else{ | ||
@@ -139,0 +159,0 @@ throw new AppwriteException(error.response.statusText, error.response.status, error.response.data); |
@@ -93,3 +93,3 @@ const Service = require('../service.js'); | ||
*/ | ||
async updateCollection(collectionId, name, read, write, rules = []) { | ||
async updateCollection(collectionId, name, read = [], write = [], rules = []) { | ||
let path = '/database/collections/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId); | ||
@@ -182,3 +182,3 @@ | ||
*/ | ||
async createDocument(collectionId, data, read, write, parentDocument = '', parentProperty = '', parentPropertyType = 'assign') { | ||
async createDocument(collectionId, data, read = [], write = [], parentDocument = '', parentProperty = '', parentPropertyType = 'assign') { | ||
let path = '/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId); | ||
@@ -234,3 +234,3 @@ | ||
*/ | ||
async updateDocument(collectionId, documentId, data, read, write) { | ||
async updateDocument(collectionId, documentId, data, read = [], write = []) { | ||
let path = '/database/collections/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId); | ||
@@ -237,0 +237,0 @@ |
@@ -140,4 +140,4 @@ const Service = require('../service.js'); | ||
* query params to filter your results. On admin mode, this endpoint will | ||
* return a list of all of the project's teams. [Learn more about different | ||
* API modes](/docs/admin). | ||
* return a list of all of the project's executions. [Learn more about | ||
* different API modes](/docs/admin). | ||
* | ||
@@ -175,6 +175,7 @@ * @param string functionId | ||
* @param string functionId | ||
* @param string data | ||
* @throws Exception | ||
* @return {} | ||
*/ | ||
async createExecution(functionId) { | ||
async createExecution(functionId, data = '') { | ||
let path = '/functions/{functionId}/executions'.replace(new RegExp('{functionId}', 'g'), functionId); | ||
@@ -186,2 +187,3 @@ | ||
{ | ||
'data': data | ||
}); | ||
@@ -188,0 +190,0 @@ } |
@@ -46,3 +46,3 @@ const Service = require('../service.js'); | ||
*/ | ||
async createFile(file, read, write) { | ||
async createFile(file, read = [], write = []) { | ||
let path = '/storage/files'; | ||
@@ -157,2 +157,7 @@ | ||
* @param number quality | ||
* @param number borderWidth | ||
* @param string borderColor | ||
* @param number borderRadius | ||
* @param number opacity | ||
* @param number rotation | ||
* @param string background | ||
@@ -163,3 +168,3 @@ * @param string output | ||
*/ | ||
async getFilePreview(fileId, width = 0, height = 0, quality = 100, background = '', output = '') { | ||
async getFilePreview(fileId, width = 0, height = 0, quality = 100, borderWidth = 0, borderColor = '', borderRadius = 0, opacity = 1, rotation = 0, background = '', output = '') { | ||
let path = '/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}', 'g'), fileId); | ||
@@ -174,2 +179,7 @@ | ||
'quality': quality, | ||
'borderWidth': borderWidth, | ||
'borderColor': borderColor, | ||
'borderRadius': borderRadius, | ||
'opacity': opacity, | ||
'rotation': rotation, | ||
'background': background, | ||
@@ -176,0 +186,0 @@ 'output': output |
@@ -189,2 +189,22 @@ const Service = require('../service.js'); | ||
/** | ||
* Update Membership Roles | ||
* | ||
* @param string teamId | ||
* @param string membershipId | ||
* @param string[] roles | ||
* @throws Exception | ||
* @return {} | ||
*/ | ||
async updateMembershipRoles(teamId, membershipId, roles) { | ||
let path = '/teams/{teamId}/memberships/{membershipId}'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{membershipId}', 'g'), membershipId); | ||
return await this.client.call('patch', path, { | ||
'content-type': 'application/json', | ||
}, | ||
{ | ||
'roles': roles | ||
}); | ||
} | ||
/** | ||
* Delete Team Membership | ||
@@ -197,8 +217,8 @@ * | ||
* @param string teamId | ||
* @param string inviteId | ||
* @param string membershipId | ||
* @throws Exception | ||
* @return {} | ||
*/ | ||
async deleteMembership(teamId, inviteId) { | ||
let path = '/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{inviteId}', 'g'), inviteId); | ||
async deleteMembership(teamId, membershipId) { | ||
let path = '/teams/{teamId}/memberships/{membershipId}'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{membershipId}', 'g'), membershipId); | ||
@@ -211,4 +231,30 @@ return await this.client.call('delete', path, { | ||
} | ||
/** | ||
* Update Team Membership Status | ||
* | ||
* Use this endpoint to allow a user to accept an invitation to join a team | ||
* after being redirected back to your app from the invitation email recieved | ||
* by the user. | ||
* | ||
* @param string teamId | ||
* @param string membershipId | ||
* @param string userId | ||
* @param string secret | ||
* @throws Exception | ||
* @return {} | ||
*/ | ||
async updateMembershipStatus(teamId, membershipId, userId, secret) { | ||
let path = '/teams/{teamId}/memberships/{membershipId}/status'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{membershipId}', 'g'), membershipId); | ||
return await this.client.call('patch', path, { | ||
'content-type': 'application/json', | ||
}, | ||
{ | ||
'userId': userId, | ||
'secret': secret | ||
}); | ||
} | ||
} | ||
module.exports = Teams; |
@@ -84,3 +84,3 @@ const Service = require('../service.js'); | ||
*/ | ||
async deleteUser(userId) { | ||
async delete(userId) { | ||
let path = '/users/{userId}'.replace(new RegExp('{userId}', 'g'), userId); | ||
@@ -219,3 +219,3 @@ | ||
* @param string userId | ||
* @param string status | ||
* @param number status | ||
* @throws Exception | ||
@@ -222,0 +222,0 @@ * @return {} |
@@ -5,3 +5,3 @@ { | ||
"description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API", | ||
"version": "2.1.0", | ||
"version": "2.2.0", | ||
"license": "BSD-3-Clause", | ||
@@ -16,4 +16,4 @@ "main": "index.js", | ||
"axios": "^0.21.1", | ||
"form-data": "^3.0.0" | ||
"form-data": "^4.0.0" | ||
} | ||
} |
# Appwrite Node.js SDK | ||
 | ||
 | ||
 | ||
[](https://twitter.com/appwrite_io) | ||
[](https://appwrite.io/discord) | ||
**This SDK is compatible with Appwrite server version 0.7.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-node/releases).** | ||
**This SDK is compatible with Appwrite server version 0.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-node/releases).** | ||
@@ -42,2 +42,3 @@ > This is the Node.js SDK for integrating with Appwrite from your Node.js server-side code. | ||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key | ||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert | ||
; | ||
@@ -71,2 +72,3 @@ ``` | ||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key | ||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert | ||
; | ||
@@ -84,2 +86,15 @@ | ||
### Error Handling | ||
The Appwrite Node SDK raises `AppwriteException` object with `message`, `code` and `response` properties. You can handle any errors by catching `AppwriteException` and present the `message` to the user or handle it yourself based on the provided error information. Below is an example. | ||
```js | ||
let users = new sdk.Users(client); | ||
try { | ||
let res = await users.create('email@example.com', 'password'); | ||
} catch(e) { | ||
console.log(e.message); | ||
} | ||
``` | ||
### Learn more | ||
@@ -86,0 +101,0 @@ You can use followng resources to learn more and get help |
123172
22.66%111
19.35%2210
21.9%111
15.63%+ Added
- Removed
Updated