Updated SDKs and docs
This commit is contained in:
parent
d2bcbcb4da
commit
7fe827ee19
28 changed files with 186 additions and 206 deletions
|
@ -8,13 +8,8 @@ client
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
Future result = avatars.getCreditCard(
|
String result = avatars.getCreditCard(
|
||||||
code: 'amex',
|
code: 'amex',
|
||||||
);
|
);
|
||||||
|
|
||||||
result
|
print(result); // Resource URL string
|
||||||
.then((response) {
|
|
||||||
print(response);
|
|
||||||
}).catchError((error) {
|
|
||||||
print(error);
|
|
||||||
});
|
|
||||||
|
|
|
@ -8,13 +8,8 @@ client
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
Future result = avatars.getFavicon(
|
String result = avatars.getFavicon(
|
||||||
url: 'https://example.com',
|
url: 'https://example.com',
|
||||||
);
|
);
|
||||||
|
|
||||||
result
|
print(result); // Resource URL string
|
||||||
.then((response) {
|
|
||||||
print(response);
|
|
||||||
}).catchError((error) {
|
|
||||||
print(error);
|
|
||||||
});
|
|
||||||
|
|
|
@ -8,13 +8,8 @@ client
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
Future result = avatars.getFlag(
|
String result = avatars.getFlag(
|
||||||
code: 'af',
|
code: 'af',
|
||||||
);
|
);
|
||||||
|
|
||||||
result
|
print(result); // Resource URL string
|
||||||
.then((response) {
|
|
||||||
print(response);
|
|
||||||
}).catchError((error) {
|
|
||||||
print(error);
|
|
||||||
});
|
|
||||||
|
|
|
@ -8,13 +8,8 @@ client
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
Future result = avatars.getImage(
|
String result = avatars.getImage(
|
||||||
url: 'https://example.com',
|
url: 'https://example.com',
|
||||||
);
|
);
|
||||||
|
|
||||||
result
|
print(result); // Resource URL string
|
||||||
.then((response) {
|
|
||||||
print(response);
|
|
||||||
}).catchError((error) {
|
|
||||||
print(error);
|
|
||||||
});
|
|
||||||
|
|
|
@ -8,13 +8,8 @@ client
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
Future result = avatars.getQR(
|
String result = avatars.getQR(
|
||||||
text: '[TEXT]',
|
text: '[TEXT]',
|
||||||
);
|
);
|
||||||
|
|
||||||
result
|
print(result); // Resource URL string
|
||||||
.then((response) {
|
|
||||||
print(response);
|
|
||||||
}).catchError((error) {
|
|
||||||
print(error);
|
|
||||||
});
|
|
||||||
|
|
|
@ -40,20 +40,25 @@ class Avatars extends Service {
|
||||||
/// card provider you need. Use width, height and quality arguments to change
|
/// card provider you need. Use width, height and quality arguments to change
|
||||||
/// the output settings.
|
/// the output settings.
|
||||||
///
|
///
|
||||||
Future<Response> getCreditCard({@required String code, int width = 100, int height = 100, int quality = 100}) {
|
String getCreditCard({@required String code, int width = 100, int height = 100, int quality = 100}) {
|
||||||
final String path = '/avatars/credit-cards/{code}'.replaceAll(RegExp('{code}'), code);
|
final String path = '/avatars/credit-cards/{code}'.replaceAll(RegExp('{code}'), code);
|
||||||
|
|
||||||
final Map<String, dynamic> params = {
|
final Map<String, dynamic> params = {
|
||||||
'width': width,
|
'width': width,
|
||||||
'height': height,
|
'height': height,
|
||||||
'quality': quality,
|
'quality': quality,
|
||||||
|
'project': client.config['project'],
|
||||||
};
|
};
|
||||||
|
|
||||||
final Map<String, String> headers = {
|
Uri endpoint = Uri.parse(client.endPoint);
|
||||||
'content-type': 'application/json',
|
Uri url = new Uri(scheme: endpoint.scheme,
|
||||||
};
|
host: endpoint.host,
|
||||||
|
port: endpoint.port,
|
||||||
|
path: endpoint.path + path,
|
||||||
|
queryParameters:params,
|
||||||
|
);
|
||||||
|
|
||||||
return client.call(HttpMethod.get, path: path, params: params, headers: headers);
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get Favicon
|
/// Get Favicon
|
||||||
|
@ -61,18 +66,23 @@ class Avatars extends Service {
|
||||||
/// Use this endpoint to fetch the favorite icon (AKA favicon) of a any remote
|
/// Use this endpoint to fetch the favorite icon (AKA favicon) of a any remote
|
||||||
/// website URL.
|
/// website URL.
|
||||||
///
|
///
|
||||||
Future<Response> getFavicon({@required String url}) {
|
String getFavicon({@required String url}) {
|
||||||
final String path = '/avatars/favicon';
|
final String path = '/avatars/favicon';
|
||||||
|
|
||||||
final Map<String, dynamic> params = {
|
final Map<String, dynamic> params = {
|
||||||
'url': url,
|
'url': url,
|
||||||
|
'project': client.config['project'],
|
||||||
};
|
};
|
||||||
|
|
||||||
final Map<String, String> headers = {
|
Uri endpoint = Uri.parse(client.endPoint);
|
||||||
'content-type': 'application/json',
|
Uri url = new Uri(scheme: endpoint.scheme,
|
||||||
};
|
host: endpoint.host,
|
||||||
|
port: endpoint.port,
|
||||||
|
path: endpoint.path + path,
|
||||||
|
queryParameters:params,
|
||||||
|
);
|
||||||
|
|
||||||
return client.call(HttpMethod.get, path: path, params: params, headers: headers);
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get Country Flag
|
/// Get Country Flag
|
||||||
|
@ -81,20 +91,25 @@ class Avatars extends Service {
|
||||||
/// users. The code argument receives the 2 letter country code. Use width,
|
/// users. The code argument receives the 2 letter country code. Use width,
|
||||||
/// height and quality arguments to change the output settings.
|
/// height and quality arguments to change the output settings.
|
||||||
///
|
///
|
||||||
Future<Response> getFlag({@required String code, int width = 100, int height = 100, int quality = 100}) {
|
String getFlag({@required String code, int width = 100, int height = 100, int quality = 100}) {
|
||||||
final String path = '/avatars/flags/{code}'.replaceAll(RegExp('{code}'), code);
|
final String path = '/avatars/flags/{code}'.replaceAll(RegExp('{code}'), code);
|
||||||
|
|
||||||
final Map<String, dynamic> params = {
|
final Map<String, dynamic> params = {
|
||||||
'width': width,
|
'width': width,
|
||||||
'height': height,
|
'height': height,
|
||||||
'quality': quality,
|
'quality': quality,
|
||||||
|
'project': client.config['project'],
|
||||||
};
|
};
|
||||||
|
|
||||||
final Map<String, String> headers = {
|
Uri endpoint = Uri.parse(client.endPoint);
|
||||||
'content-type': 'application/json',
|
Uri url = new Uri(scheme: endpoint.scheme,
|
||||||
};
|
host: endpoint.host,
|
||||||
|
port: endpoint.port,
|
||||||
|
path: endpoint.path + path,
|
||||||
|
queryParameters:params,
|
||||||
|
);
|
||||||
|
|
||||||
return client.call(HttpMethod.get, path: path, params: params, headers: headers);
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get Image from URL
|
/// Get Image from URL
|
||||||
|
@ -104,20 +119,25 @@ class Avatars extends Service {
|
||||||
/// remote images in your app or in case you want to make sure a 3rd party
|
/// remote images in your app or in case you want to make sure a 3rd party
|
||||||
/// image is properly served using a TLS protocol.
|
/// image is properly served using a TLS protocol.
|
||||||
///
|
///
|
||||||
Future<Response> getImage({@required String url, int width = 400, int height = 400}) {
|
String getImage({@required String url, int width = 400, int height = 400}) {
|
||||||
final String path = '/avatars/image';
|
final String path = '/avatars/image';
|
||||||
|
|
||||||
final Map<String, dynamic> params = {
|
final Map<String, dynamic> params = {
|
||||||
'url': url,
|
'url': url,
|
||||||
'width': width,
|
'width': width,
|
||||||
'height': height,
|
'height': height,
|
||||||
|
'project': client.config['project'],
|
||||||
};
|
};
|
||||||
|
|
||||||
final Map<String, String> headers = {
|
Uri endpoint = Uri.parse(client.endPoint);
|
||||||
'content-type': 'application/json',
|
Uri url = new Uri(scheme: endpoint.scheme,
|
||||||
};
|
host: endpoint.host,
|
||||||
|
port: endpoint.port,
|
||||||
|
path: endpoint.path + path,
|
||||||
|
queryParameters:params,
|
||||||
|
);
|
||||||
|
|
||||||
return client.call(HttpMethod.get, path: path, params: params, headers: headers);
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get QR Code
|
/// Get QR Code
|
||||||
|
@ -125,7 +145,7 @@ class Avatars extends Service {
|
||||||
/// Converts a given plain text to a QR code image. You can use the query
|
/// Converts a given plain text to a QR code image. You can use the query
|
||||||
/// parameters to change the size and style of the resulting image.
|
/// parameters to change the size and style of the resulting image.
|
||||||
///
|
///
|
||||||
Future<Response> getQR({@required String text, int size = 400, int margin = 1, int download = 0}) {
|
String getQR({@required String text, int size = 400, int margin = 1, int download = 0}) {
|
||||||
final String path = '/avatars/qr';
|
final String path = '/avatars/qr';
|
||||||
|
|
||||||
final Map<String, dynamic> params = {
|
final Map<String, dynamic> params = {
|
||||||
|
@ -133,12 +153,17 @@ class Avatars extends Service {
|
||||||
'size': size,
|
'size': size,
|
||||||
'margin': margin,
|
'margin': margin,
|
||||||
'download': download,
|
'download': download,
|
||||||
|
'project': client.config['project'],
|
||||||
};
|
};
|
||||||
|
|
||||||
final Map<String, String> headers = {
|
Uri endpoint = Uri.parse(client.endPoint);
|
||||||
'content-type': 'application/json',
|
Uri url = new Uri(scheme: endpoint.scheme,
|
||||||
};
|
host: endpoint.host,
|
||||||
|
port: endpoint.port,
|
||||||
|
path: endpoint.path + path,
|
||||||
|
queryParameters:params,
|
||||||
|
);
|
||||||
|
|
||||||
return client.call(HttpMethod.get, path: path, params: params, headers: headers);
|
return url.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite Web SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-js.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-js.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
|
@ -4,10 +4,6 @@ sdk
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getCreditCard('amex');
|
let result = sdk.avatars.getCreditCard('amex');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -4,10 +4,6 @@ sdk
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getFavicon('https://example.com');
|
let result = sdk.avatars.getFavicon('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -4,10 +4,6 @@ sdk
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getFlag('af');
|
let result = sdk.avatars.getFlag('af');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -4,10 +4,6 @@ sdk
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getImage('https://example.com');
|
let result = sdk.avatars.getImage('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -4,10 +4,6 @@ sdk
|
||||||
.setProject('5df5acd0d48c2') // Your project ID
|
.setProject('5df5acd0d48c2') // Your project ID
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getQR('[TEXT]');
|
let result = sdk.avatars.getQR('[TEXT]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -900,7 +900,7 @@
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getCreditCard: function(code, width = 100, height = 100, quality = 100) {
|
getCreditCard: function(code, width = 100, height = 100, quality = 100) {
|
||||||
if(code === undefined) {
|
if(code === undefined) {
|
||||||
|
@ -923,10 +923,11 @@
|
||||||
payload['quality'] = quality;
|
payload['quality'] = quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
}, payload);
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -937,7 +938,7 @@
|
||||||
*
|
*
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFavicon: function(url) {
|
getFavicon: function(url) {
|
||||||
if(url === undefined) {
|
if(url === undefined) {
|
||||||
|
@ -952,10 +953,11 @@
|
||||||
payload['url'] = url;
|
payload['url'] = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
}, payload);
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -970,7 +972,7 @@
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFlag: function(code, width = 100, height = 100, quality = 100) {
|
getFlag: function(code, width = 100, height = 100, quality = 100) {
|
||||||
if(code === undefined) {
|
if(code === undefined) {
|
||||||
|
@ -993,10 +995,11 @@
|
||||||
payload['quality'] = quality;
|
payload['quality'] = quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
}, payload);
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1011,7 +1014,7 @@
|
||||||
* @param {number} width
|
* @param {number} width
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getImage: function(url, width = 400, height = 400) {
|
getImage: function(url, width = 400, height = 400) {
|
||||||
if(url === undefined) {
|
if(url === undefined) {
|
||||||
|
@ -1034,10 +1037,11 @@
|
||||||
payload['height'] = height;
|
payload['height'] = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
}, payload);
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1051,7 +1055,7 @@
|
||||||
* @param {number} margin
|
* @param {number} margin
|
||||||
* @param {number} download
|
* @param {number} download
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getQR: function(text, size = 400, margin = 1, download = 0) {
|
getQR: function(text, size = 400, margin = 1, download = 0) {
|
||||||
if(text === undefined) {
|
if(text === undefined) {
|
||||||
|
@ -1078,10 +1082,11 @@
|
||||||
payload['download'] = download;
|
payload['download'] = download;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
}, payload);
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
10
app/sdks/client-web/src/sdk.min.js
vendored
10
app/sdks/client-web/src/sdk.min.js
vendored
|
@ -63,22 +63,22 @@ return http.get(path,{'content-type':'application/json',},payload)},getCreditCar
|
||||||
let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
if(quality){payload.quality=quality}
|
if(quality){payload.quality=quality}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
payload.project=config.project;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
||||||
let path='/avatars/favicon';let payload={};if(url){payload.url=url}
|
let path='/avatars/favicon';let payload={};if(url){payload.url=url}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')}
|
payload.project=config.project;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')}
|
||||||
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
if(quality){payload.quality=quality}
|
if(quality){payload.quality=quality}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
payload.project=config.project;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
||||||
let path='/avatars/image';let payload={};if(url){payload.url=url}
|
let path='/avatars/image';let payload={};if(url){payload.url=url}
|
||||||
if(width){payload.width=width}
|
if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')}
|
payload.project=config.project;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')}
|
||||||
let path='/avatars/qr';let payload={};if(text){payload.text=text}
|
let path='/avatars/qr';let payload={};if(text){payload.text=text}
|
||||||
if(size){payload.size=size}
|
if(size){payload.size=size}
|
||||||
if(margin){payload.margin=margin}
|
if(margin){payload.margin=margin}
|
||||||
if(download){payload.download=download}
|
if(download){payload.download=download}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)}};let database={listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$id',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')}
|
payload.project=config.project;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')}};let database={listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$id',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')}
|
||||||
let path='/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(filters){payload.filters=filters}
|
let path='/database/collections/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(filters){payload.filters=filters}
|
||||||
if(offset){payload.offset=offset}
|
if(offset){payload.offset=offset}
|
||||||
if(limit){payload.limit=limit}
|
if(limit){payload.limit=limit}
|
||||||
|
|
20
app/sdks/client-web/types/index.d.ts
vendored
20
app/sdks/client-web/types/index.d.ts
vendored
|
@ -338,9 +338,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getCreditCard(code: string, width: number, height: number, quality: number): Promise<object>;
|
getCreditCard(code: string, width: number, height: number, quality: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Favicon
|
* Get Favicon
|
||||||
|
@ -350,9 +350,9 @@ declare namespace Appwrite {
|
||||||
*
|
*
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFavicon(url: string): Promise<object>;
|
getFavicon(url: string): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Country Flag
|
* Get Country Flag
|
||||||
|
@ -366,9 +366,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFlag(code: string, width: number, height: number, quality: number): Promise<object>;
|
getFlag(code: string, width: number, height: number, quality: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image from URL
|
* Get Image from URL
|
||||||
|
@ -382,9 +382,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} width
|
* @param {number} width
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getImage(url: string, width: number, height: number): Promise<object>;
|
getImage(url: string, width: number, height: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get QR Code
|
* Get QR Code
|
||||||
|
@ -397,9 +397,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} margin
|
* @param {number} margin
|
||||||
* @param {number} download
|
* @param {number} download
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getQR(text: string, size: number, margin: number, download: number): Promise<object>;
|
getQR(text: string, size: number, margin: number, download: number): string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite Console SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-console.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-console.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
|
@ -5,10 +5,6 @@ sdk
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getCreditCard('amex');
|
let result = sdk.avatars.getCreditCard('amex');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ sdk
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getFavicon('https://example.com');
|
let result = sdk.avatars.getFavicon('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ sdk
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getFlag('af');
|
let result = sdk.avatars.getFlag('af');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ sdk
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getImage('https://example.com');
|
let result = sdk.avatars.getImage('https://example.com');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ sdk
|
||||||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||||
;
|
;
|
||||||
|
|
||||||
let promise = sdk.avatars.getQR('[TEXT]');
|
let result = sdk.avatars.getQR('[TEXT]');
|
||||||
|
|
||||||
promise.then(function (response) {
|
console.log(result); // Resource URL
|
||||||
console.log(response); // Success
|
|
||||||
}, function (error) {
|
|
||||||
console.log(error); // Failure
|
|
||||||
});
|
|
||||||
|
|
|
@ -938,7 +938,7 @@
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getCreditCard: function(code, width = 100, height = 100, quality = 100) {
|
getCreditCard: function(code, width = 100, height = 100, quality = 100) {
|
||||||
if(code === undefined) {
|
if(code === undefined) {
|
||||||
|
@ -961,10 +961,13 @@
|
||||||
payload['quality'] = quality;
|
payload['quality'] = quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
payload['key'] = config.key;
|
||||||
}, payload);
|
|
||||||
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -975,7 +978,7 @@
|
||||||
*
|
*
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFavicon: function(url) {
|
getFavicon: function(url) {
|
||||||
if(url === undefined) {
|
if(url === undefined) {
|
||||||
|
@ -990,10 +993,13 @@
|
||||||
payload['url'] = url;
|
payload['url'] = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
payload['key'] = config.key;
|
||||||
}, payload);
|
|
||||||
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1008,7 +1014,7 @@
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFlag: function(code, width = 100, height = 100, quality = 100) {
|
getFlag: function(code, width = 100, height = 100, quality = 100) {
|
||||||
if(code === undefined) {
|
if(code === undefined) {
|
||||||
|
@ -1031,10 +1037,13 @@
|
||||||
payload['quality'] = quality;
|
payload['quality'] = quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
payload['key'] = config.key;
|
||||||
}, payload);
|
|
||||||
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1049,7 +1058,7 @@
|
||||||
* @param {number} width
|
* @param {number} width
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getImage: function(url, width = 400, height = 400) {
|
getImage: function(url, width = 400, height = 400) {
|
||||||
if(url === undefined) {
|
if(url === undefined) {
|
||||||
|
@ -1072,10 +1081,13 @@
|
||||||
payload['height'] = height;
|
payload['height'] = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
payload['key'] = config.key;
|
||||||
}, payload);
|
|
||||||
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1089,7 +1101,7 @@
|
||||||
* @param {number} margin
|
* @param {number} margin
|
||||||
* @param {number} download
|
* @param {number} download
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getQR: function(text, size = 400, margin = 1, download = 0) {
|
getQR: function(text, size = 400, margin = 1, download = 0) {
|
||||||
if(text === undefined) {
|
if(text === undefined) {
|
||||||
|
@ -1116,10 +1128,13 @@
|
||||||
payload['download'] = download;
|
payload['download'] = download;
|
||||||
}
|
}
|
||||||
|
|
||||||
return http
|
payload['project'] = config.project;
|
||||||
.get(path, {
|
|
||||||
'content-type': 'application/json',
|
payload['key'] = config.key;
|
||||||
}, payload);
|
|
||||||
|
let query = Object.keys(payload).map(key => key + '=' + encodeURIComponent(payload[key])).join('&');
|
||||||
|
|
||||||
|
return config.endpoint + path + ((query) ? '?' + query : '');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
10
app/sdks/console-web/src/sdk.min.js
vendored
10
app/sdks/console-web/src/sdk.min.js
vendored
|
@ -63,22 +63,22 @@ return http.get(path,{'content-type':'application/json',},payload)},getCreditCar
|
||||||
let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
if(quality){payload.quality=quality}
|
if(quality){payload.quality=quality}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
payload.project=config.project;payload.key=config.key;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
||||||
let path='/avatars/favicon';let payload={};if(url){payload.url=url}
|
let path='/avatars/favicon';let payload={};if(url){payload.url=url}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')}
|
payload.project=config.project;payload.key=config.key;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')}
|
||||||
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
if(quality){payload.quality=quality}
|
if(quality){payload.quality=quality}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
payload.project=config.project;payload.key=config.key;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')}
|
||||||
let path='/avatars/image';let payload={};if(url){payload.url=url}
|
let path='/avatars/image';let payload={};if(url){payload.url=url}
|
||||||
if(width){payload.width=width}
|
if(width){payload.width=width}
|
||||||
if(height){payload.height=height}
|
if(height){payload.height=height}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')}
|
payload.project=config.project;payload.key=config.key;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')}
|
||||||
let path='/avatars/qr';let payload={};if(text){payload.text=text}
|
let path='/avatars/qr';let payload={};if(text){payload.text=text}
|
||||||
if(size){payload.size=size}
|
if(size){payload.size=size}
|
||||||
if(margin){payload.margin=margin}
|
if(margin){payload.margin=margin}
|
||||||
if(download){payload.download=download}
|
if(download){payload.download=download}
|
||||||
return http.get(path,{'content-type':'application/json',},payload)}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database/collections';let payload={};if(search){payload.search=search}
|
payload.project=config.project;payload.key=config.key;let query=Object.keys(payload).map(key=>key+'='+encodeURIComponent(payload[key])).join('&');return config.endpoint+path+((query)?'?'+query:'')}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database/collections';let payload={};if(search){payload.search=search}
|
||||||
if(limit){payload.limit=limit}
|
if(limit){payload.limit=limit}
|
||||||
if(offset){payload.offset=offset}
|
if(offset){payload.offset=offset}
|
||||||
if(orderType){payload.orderType=orderType}
|
if(orderType){payload.orderType=orderType}
|
||||||
|
|
20
app/sdks/console-web/types/index.d.ts
vendored
20
app/sdks/console-web/types/index.d.ts
vendored
|
@ -359,9 +359,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getCreditCard(code: string, width: number, height: number, quality: number): Promise<object>;
|
getCreditCard(code: string, width: number, height: number, quality: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Favicon
|
* Get Favicon
|
||||||
|
@ -371,9 +371,9 @@ declare namespace Appwrite {
|
||||||
*
|
*
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFavicon(url: string): Promise<object>;
|
getFavicon(url: string): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Country Flag
|
* Get Country Flag
|
||||||
|
@ -387,9 +387,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @param {number} quality
|
* @param {number} quality
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getFlag(code: string, width: number, height: number, quality: number): Promise<object>;
|
getFlag(code: string, width: number, height: number, quality: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Image from URL
|
* Get Image from URL
|
||||||
|
@ -403,9 +403,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} width
|
* @param {number} width
|
||||||
* @param {number} height
|
* @param {number} height
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getImage(url: string, width: number, height: number): Promise<object>;
|
getImage(url: string, width: number, height: number): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get QR Code
|
* Get QR Code
|
||||||
|
@ -418,9 +418,9 @@ declare namespace Appwrite {
|
||||||
* @param {number} margin
|
* @param {number} margin
|
||||||
* @param {number} download
|
* @param {number} download
|
||||||
* @throws {Error}
|
* @throws {Error}
|
||||||
* @return {Promise}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
getQR(text: string, size: number, margin: number, download: number): Promise<object>;
|
getQR(text: string, size: number, margin: number, download: number): string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite Node.js SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-node.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-node.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite PHP SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-php.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-php.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite Python SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-python.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-python.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Appwrite SDK
|
# Appwrite Ruby SDK
|
||||||
|
|
||||||
![License](https://img.shields.io/github/license/appwrite/sdk-for-ruby.svg?v=1)
|
![License](https://img.shields.io/github/license/appwrite/sdk-for-ruby.svg?v=1)
|
||||||
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
![Version](https://img.shields.io/badge/api%20version-0.6.0-blue.svg?v=1)
|
||||||
|
|
Loading…
Reference in a new issue