1
0
Fork 0
mirror of synced 2024-07-15 11:25:53 +12:00
appwrite/app/sdks/node/lib/services/avatars.js
2019-08-27 12:12:40 +03:00

152 lines
4.5 KiB
JavaScript

const Service = require('../service.js');
class Avatars extends Service {
/**
* Get Browser Icon
*
* You can use this endpoint to show different browser icons to your users,
* The code argument receives the browser code as appear in your user
* /account/sessions endpoint. Use width, height and quality arguments to
* change the output settings.
*
* @param string code
* @param number width
* @param number height
* @param number quality
* @throws Exception
* @return {}
*/
async getBrowser(code, width = 100, height = 100, quality = 100) {
let path = '/avatars/browsers/{code}'.replace(new RegExp('{code}', 'g'), code);
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'width': width,
'height': height,
'quality': quality
});
}
/**
* Get Credit Card Icon
*
* Need to display your users with your billing method or there payment
* methods? The credit card endpoint will return you the icon of the credit
* card provider you need. Use width, height and quality arguments to change
* the output settings.
*
* @param string code
* @param number width
* @param number height
* @param number quality
* @throws Exception
* @return {}
*/
async getCreditCard(code, width = 100, height = 100, quality = 100) {
let path = '/avatars/credit-cards/{code}'.replace(new RegExp('{code}', 'g'), code);
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'width': width,
'height': height,
'quality': quality
});
}
/**
* Get Favicon
*
* Use this endpoint to fetch the favorite icon (AKA favicon) of a any remote
* website URL.
*
* @param string url
* @throws Exception
* @return {}
*/
async getFavicon(url) {
let path = '/avatars/favicon';
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'url': url
});
}
/**
* Get Country Flag
*
* You can use this endpoint to show different country flags icons to your
* users, The code argument receives the a 2 letter country code. Use width,
* height and quality arguments to change the output settings.
*
* @param string code
* @param number width
* @param number height
* @param number quality
* @throws Exception
* @return {}
*/
async getFlag(code, width = 100, height = 100, quality = 100) {
let path = '/avatars/flags/{code}'.replace(new RegExp('{code}', 'g'), code);
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'width': width,
'height': height,
'quality': quality
});
}
/**
* Get Image from URL
*
* Use this endpoint to fetch a remote image URL and crop it to any image size
* you want. This endpoint is very useful if you need to crop and display
* remote images in your app or in cases, you want to make sure a 3rd party
* image is properly served using a TLS protocol.
*
* @param string url
* @param number width
* @param number height
* @throws Exception
* @return {}
*/
async getImage(url, width = 400, height = 400) {
let path = '/avatars/image';
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'url': url,
'width': width,
'height': height
});
}
/**
* Text to QR Generator
*
* 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.
*
* @param string text
* @param number size
* @param number margin
* @param number download
* @throws Exception
* @return {}
*/
async getQR(text, size = 400, margin = 1, download = 0) {
let path = '/avatars/qr';
return await this.client.call('get', path, {'content-type': 'application/json'},
{
'text': text,
'size': size,
'margin': margin,
'download': download
});
}
}
module.exports = Avatars;