Merge branch '0.7.x' of github.com:appwrite/appwrite into swoole-and-functions
This commit is contained in:
commit
f72e4561c6
69 changed files with 102 additions and 38 deletions
|
@ -165,7 +165,7 @@ return [
|
||||||
[
|
[
|
||||||
'key' => 'deno',
|
'key' => 'deno',
|
||||||
'name' => 'Deno',
|
'name' => 'Deno',
|
||||||
'version' => '0.0.1',
|
'version' => '0.0.2',
|
||||||
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
||||||
'enabled' => false,
|
'enabled' => false,
|
||||||
'beta' => true,
|
'beta' => true,
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# Appwrite Deno SDK
|
# Appwrite Deno SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-deno.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-deno.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.1-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.2-blue.svg?v=1)
|
||||||
|
|
||||||
**This SDK is compatible with Appwrite server version 0.6.1. For older versions, please check previous releases.**
|
**This SDK is compatible with Appwrite server version 0.6.2. For older versions, please check previous releases.**
|
||||||
|
|
||||||
Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way.
|
Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way.
|
||||||
Use the Deno SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools.
|
Use the Deno SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools.
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getBrowser('aa');
|
let promise = avatars.getBrowser('aa');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getCreditCard('amex');
|
let promise = avatars.getCreditCard('amex');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getFavicon('https://example.com');
|
let promise = avatars.getFavicon('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getFlag('af');
|
let promise = avatars.getFlag('af');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getImage('https://example.com');
|
let promise = avatars.getImage('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = avatars.getQR('[TEXT]');
|
let promise = avatars.getQR('[TEXT]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.createCollection('[NAME]', [], [], []);
|
let promise = database.createCollection('[NAME]', [], [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.createDocument('[COLLECTION_ID]', {}, [], []);
|
let promise = database.createDocument('[COLLECTION_ID]', {}, [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.deleteCollection('[COLLECTION_ID]');
|
let promise = database.deleteCollection('[COLLECTION_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.deleteDocument('[COLLECTION_ID]', '[DOCUMENT_ID]');
|
let promise = database.deleteDocument('[COLLECTION_ID]', '[DOCUMENT_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.getCollectionLogs('[COLLECTION_ID]');
|
let promise = database.getCollectionLogs('[COLLECTION_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.getCollection('[COLLECTION_ID]');
|
let promise = database.getCollection('[COLLECTION_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.getDocument('[COLLECTION_ID]', '[DOCUMENT_ID]');
|
let promise = database.getDocument('[COLLECTION_ID]', '[DOCUMENT_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.listCollections();
|
let promise = database.listCollections();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.listDocuments('[COLLECTION_ID]');
|
let promise = database.listDocuments('[COLLECTION_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.updateCollection('[COLLECTION_ID]', '[NAME]', [], []);
|
let promise = database.updateCollection('[COLLECTION_ID]', '[NAME]', [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = database.updateDocument('[COLLECTION_ID]', '[DOCUMENT_ID]', {}, [], []);
|
let promise = database.updateDocument('[COLLECTION_ID]', '[DOCUMENT_ID]', {}, [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getAntiVirus();
|
let promise = health.getAntiVirus();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getCache();
|
let promise = health.getCache();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getDB();
|
let promise = health.getDB();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueCertificates();
|
let promise = health.getQueueCertificates();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueFunctions();
|
let promise = health.getQueueFunctions();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueLogs();
|
let promise = health.getQueueLogs();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueTasks();
|
let promise = health.getQueueTasks();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueUsage();
|
let promise = health.getQueueUsage();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getQueueWebhooks();
|
let promise = health.getQueueWebhooks();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getStorageLocal();
|
let promise = health.getStorageLocal();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.getTime();
|
let promise = health.getTime();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = health.get();
|
let promise = health.get();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.getContinents();
|
let promise = locale.getContinents();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.getCountriesEU();
|
let promise = locale.getCountriesEU();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.getCountriesPhones();
|
let promise = locale.getCountriesPhones();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.getCountries();
|
let promise = locale.getCountries();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.getCurrencies();
|
let promise = locale.getCurrencies();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = locale.get();
|
let promise = locale.get();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,7 +10,8 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = storage.createFile(fs.createReadStream(__dirname + '/file.png')), [], []);
|
|
||||||
|
let promise = storage.createFile(new File([fileBlob], 'file.png'), [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
console.log(response);
|
console.log(response);
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.deleteFile('[FILE_ID]');
|
let promise = storage.deleteFile('[FILE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.getFileDownload('[FILE_ID]');
|
let promise = storage.getFileDownload('[FILE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.getFilePreview('[FILE_ID]');
|
let promise = storage.getFilePreview('[FILE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.getFileView('[FILE_ID]');
|
let promise = storage.getFileView('[FILE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.getFile('[FILE_ID]');
|
let promise = storage.getFile('[FILE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.listFiles();
|
let promise = storage.listFiles();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = storage.updateFile('[FILE_ID]', [], []);
|
let promise = storage.updateFile('[FILE_ID]', [], []);
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.createMembership('[TEAM_ID]', 'email@example.com', [], 'https://example.com');
|
let promise = teams.createMembership('[TEAM_ID]', 'email@example.com', [], 'https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.create('[NAME]');
|
let promise = teams.create('[NAME]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.deleteMembership('[TEAM_ID]', '[INVITE_ID]');
|
let promise = teams.deleteMembership('[TEAM_ID]', '[INVITE_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.delete('[TEAM_ID]');
|
let promise = teams.delete('[TEAM_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.getMemberships('[TEAM_ID]');
|
let promise = teams.getMemberships('[TEAM_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.get('[TEAM_ID]');
|
let promise = teams.get('[TEAM_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.list();
|
let promise = teams.list();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = teams.update('[TEAM_ID]', '[NAME]');
|
let promise = teams.update('[TEAM_ID]', '[NAME]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.create('email@example.com', 'password');
|
let promise = users.create('email@example.com', 'password');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.deleteSession('[USER_ID]', '[SESSION_ID]');
|
let promise = users.deleteSession('[USER_ID]', '[SESSION_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.deleteSessions('[USER_ID]');
|
let promise = users.deleteSessions('[USER_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.getLogs('[USER_ID]');
|
let promise = users.getLogs('[USER_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.getPrefs('[USER_ID]');
|
let promise = users.getPrefs('[USER_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.getSessions('[USER_ID]');
|
let promise = users.getSessions('[USER_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.get('[USER_ID]');
|
let promise = users.get('[USER_ID]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.list();
|
let promise = users.list();
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.updatePrefs('[USER_ID]', {});
|
let promise = users.updatePrefs('[USER_ID]', {});
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ client
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
let promise = users.updateStatus('[USER_ID]', '1');
|
let promise = users.updateStatus('[USER_ID]', '1');
|
||||||
|
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
|
|
|
@ -7,7 +7,7 @@ export class Client {
|
||||||
endpoint: string = 'https://appwrite.io/v1';
|
endpoint: string = 'https://appwrite.io/v1';
|
||||||
headers: DocumentData = {
|
headers: DocumentData = {
|
||||||
'content-type': '',
|
'content-type': '',
|
||||||
'x-sdk-version': 'appwrite:deno:0.0.1',
|
'x-sdk-version': 'appwrite:deno:0.0.2',
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -38,13 +38,13 @@ export class Database extends Service {
|
||||||
* Create a new Collection.
|
* Create a new Collection.
|
||||||
*
|
*
|
||||||
* @param string name
|
* @param string name
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @param Array<string> rules
|
* @param Array<any> rules
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async createCollection(name: string, read: Array<string>, write: Array<string>, rules: Array<string>): Promise<string> {
|
async createCollection(name: string, read: Array<any>, write: Array<any>, rules: Array<any>): Promise<string> {
|
||||||
let path = '/database/collections';
|
let path = '/database/collections';
|
||||||
|
|
||||||
return await this.client.call('post', path, {
|
return await this.client.call('post', path, {
|
||||||
|
@ -85,13 +85,13 @@ export class Database extends Service {
|
||||||
*
|
*
|
||||||
* @param string collectionId
|
* @param string collectionId
|
||||||
* @param string name
|
* @param string name
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @param Array<string> rules
|
* @param Array<any> rules
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async updateCollection(collectionId: string, name: string, read: Array<string>, write: Array<string>, rules: Array<string> = []): Promise<string> {
|
async updateCollection(collectionId: string, name: string, read: Array<any>, write: Array<any>, rules: Array<any> = []): Promise<string> {
|
||||||
let path = '/database/collections/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
let path = '/database/collections/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
||||||
|
|
||||||
return await this.client.call('put', path, {
|
return await this.client.call('put', path, {
|
||||||
|
@ -134,7 +134,7 @@ export class Database extends Service {
|
||||||
* modes](/docs/admin).
|
* modes](/docs/admin).
|
||||||
*
|
*
|
||||||
* @param string collectionId
|
* @param string collectionId
|
||||||
* @param Array<string> filters
|
* @param Array<any> filters
|
||||||
* @param number offset
|
* @param number offset
|
||||||
* @param number limit
|
* @param number limit
|
||||||
* @param string orderField
|
* @param string orderField
|
||||||
|
@ -146,7 +146,7 @@ export class Database extends Service {
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async listDocuments(collectionId: string, filters: Array<string> = [], offset: number = 0, limit: number = 50, orderField: string = '$id', orderType: string = 'ASC', orderCast: string = 'string', search: string = '', first: number = 0, last: number = 0): Promise<string> {
|
async listDocuments(collectionId: string, filters: Array<any> = [], offset: number = 0, limit: number = 50, orderField: string = '$id', orderType: string = 'ASC', orderCast: string = 'string', search: string = '', first: number = 0, last: number = 0): Promise<string> {
|
||||||
let path = '/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
let path = '/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
||||||
|
|
||||||
return await this.client.call('get', path, {
|
return await this.client.call('get', path, {
|
||||||
|
@ -168,19 +168,22 @@ export class Database extends Service {
|
||||||
/**
|
/**
|
||||||
* Create Document
|
* Create Document
|
||||||
*
|
*
|
||||||
* Create a new Document.
|
* Create a new Document. Before using this route, you should create a new
|
||||||
|
* collection resource using either a [server
|
||||||
|
* integration](/docs/server/database?sdk=nodejs#createCollection) API or
|
||||||
|
* directly from your database console.
|
||||||
*
|
*
|
||||||
* @param string collectionId
|
* @param string collectionId
|
||||||
* @param DocumentData data
|
* @param DocumentData data
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @param string parentDocument
|
* @param string parentDocument
|
||||||
* @param string parentProperty
|
* @param string parentProperty
|
||||||
* @param string parentPropertyType
|
* @param string parentPropertyType
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async createDocument(collectionId: string, data: DocumentData, read: Array<string>, write: Array<string>, parentDocument: string = '', parentProperty: string = '', parentPropertyType: string = 'assign'): Promise<string> {
|
async createDocument(collectionId: string, data: DocumentData, read: Array<any>, write: Array<any>, parentDocument: string = '', parentProperty: string = '', parentPropertyType: string = 'assign'): Promise<string> {
|
||||||
let path = '/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
let path = '/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId);
|
||||||
|
|
||||||
return await this.client.call('post', path, {
|
return await this.client.call('post', path, {
|
||||||
|
@ -223,12 +226,12 @@ export class Database extends Service {
|
||||||
* @param string collectionId
|
* @param string collectionId
|
||||||
* @param string documentId
|
* @param string documentId
|
||||||
* @param DocumentData data
|
* @param DocumentData data
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async updateDocument(collectionId: string, documentId: string, data: DocumentData, read: Array<string>, write: Array<string>): Promise<string> {
|
async updateDocument(collectionId: string, documentId: string, data: DocumentData, read: Array<any>, write: Array<any>): Promise<string> {
|
||||||
let path = '/database/collections/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId);
|
let path = '/database/collections/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId);
|
||||||
|
|
||||||
return await this.client.call('patch', path, {
|
return await this.client.call('patch', path, {
|
||||||
|
|
|
@ -39,12 +39,12 @@ export class Storage extends Service {
|
||||||
* read and write arguments.
|
* read and write arguments.
|
||||||
*
|
*
|
||||||
* @param File | Blob file
|
* @param File | Blob file
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async createFile(file: File | Blob, read: Array<string>, write: Array<string>): Promise<string> {
|
async createFile(file: File | Blob, read: Array<any>, write: Array<any>): Promise<string> {
|
||||||
let path = '/storage/files';
|
let path = '/storage/files';
|
||||||
|
|
||||||
return await this.client.call('post', path, {
|
return await this.client.call('post', path, {
|
||||||
|
@ -84,12 +84,12 @@ export class Storage extends Service {
|
||||||
* to update this resource.
|
* to update this resource.
|
||||||
*
|
*
|
||||||
* @param string fileId
|
* @param string fileId
|
||||||
* @param Array<string> read
|
* @param Array<any> read
|
||||||
* @param Array<string> write
|
* @param Array<any> write
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async updateFile(fileId: string, read: Array<string>, write: Array<string>): Promise<string> {
|
async updateFile(fileId: string, read: Array<any>, write: Array<any>): Promise<string> {
|
||||||
let path = '/storage/files/{fileId}'.replace(new RegExp('{fileId}', 'g'), fileId);
|
let path = '/storage/files/{fileId}'.replace(new RegExp('{fileId}', 'g'), fileId);
|
||||||
|
|
||||||
return await this.client.call('put', path, {
|
return await this.client.call('put', path, {
|
||||||
|
|
|
@ -40,11 +40,11 @@ export class Teams extends Service {
|
||||||
* project.
|
* project.
|
||||||
*
|
*
|
||||||
* @param string name
|
* @param string name
|
||||||
* @param Array<string> roles
|
* @param Array<any> roles
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async create(name: string, roles: Array<string> = ["owner"]): Promise<string> {
|
async create(name: string, roles: Array<any> = ["owner"]): Promise<string> {
|
||||||
let path = '/teams';
|
let path = '/teams';
|
||||||
|
|
||||||
return await this.client.call('post', path, {
|
return await this.client.call('post', path, {
|
||||||
|
@ -147,8 +147,8 @@ export class Teams extends Service {
|
||||||
*
|
*
|
||||||
* Use the 'URL' parameter to redirect the user from the invitation email back
|
* Use the 'URL' parameter to redirect the user from the invitation email back
|
||||||
* to your app. When the user is redirected, use the [Update Team Membership
|
* to your app. When the user is redirected, use the [Update Team Membership
|
||||||
* Status](/docs/teams#updateMembershipStatus) endpoint to allow the user to
|
* Status](/docs/client/teams#updateMembershipStatus) endpoint to allow the
|
||||||
* accept the invitation to the team.
|
* user to accept the invitation to the team.
|
||||||
*
|
*
|
||||||
* Please note that in order to avoid a [Redirect
|
* Please note that in order to avoid a [Redirect
|
||||||
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
|
* Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
|
||||||
|
@ -157,13 +157,13 @@ export class Teams extends Service {
|
||||||
*
|
*
|
||||||
* @param string teamId
|
* @param string teamId
|
||||||
* @param string email
|
* @param string email
|
||||||
* @param Array<string> roles
|
* @param Array<any> roles
|
||||||
* @param string url
|
* @param string url
|
||||||
* @param string name
|
* @param string name
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @return Promise<string>
|
* @return Promise<string>
|
||||||
*/
|
*/
|
||||||
async createMembership(teamId: string, email: string, roles: Array<string>, url: string, name: string = ''): Promise<string> {
|
async createMembership(teamId: string, email: string, roles: Array<any>, url: string, name: string = ''): Promise<string> {
|
||||||
let path = '/teams/{teamId}/memberships'.replace(new RegExp('{teamId}', 'g'), teamId);
|
let path = '/teams/{teamId}/memberships'.replace(new RegExp('{teamId}', 'g'), teamId);
|
||||||
|
|
||||||
return await this.client.call('post', path, {
|
return await this.client.call('post', path, {
|
||||||
|
|
|
@ -68,7 +68,7 @@ abstract class Adapter
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
abstract public function createDocument(array $data, array $unique);
|
abstract public function createDocument(array $data = [], array $unique = []);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Document.
|
* Update Document.
|
||||||
|
@ -77,7 +77,7 @@ abstract class Adapter
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
abstract public function updateDocument(array $data);
|
abstract public function updateDocument(array $data = []);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete Node.
|
* Delete Node.
|
||||||
|
|
|
@ -718,8 +718,8 @@ class MySQL extends Adapter
|
||||||
$roles = ['1=1'];
|
$roles = ['1=1'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = 'SELECT SUM(b_func.value) as result
|
$query = "SELECT SUM(b_func.value) as result
|
||||||
FROM `'.$this->getNamespace().".database.documents` a {$where}{$join}{$func}
|
FROM `".$this->getNamespace().".database.documents` a {$where}{$join}{$func}
|
||||||
WHERE status = 0
|
WHERE status = 0
|
||||||
AND (".\implode('||', $roles).')';
|
AND (".\implode('||', $roles).')';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue