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;