1
0
Fork 0
mirror of synced 2024-06-14 00:34:51 +12:00
appwrite/public/sdk-console/services/avatars.ts
2022-09-20 14:07:51 +05:30

352 lines
12 KiB
TypeScript

import { Service } from '../service';
import { AppwriteException, Client } from '../client';
import type { Models } from '../models';
import type { UploadProgress, Payload } from '../client';
export class Avatars extends Service {
constructor(client: Client)
{
super(client);
}
/**
* Get Browser Icon
*
* You can use this endpoint to show different browser icons to your users.
* The code argument receives the browser code as it appears in your user [GET
* /account/sessions](/docs/client/account#accountGetSessions) endpoint. Use
* width, height and quality arguments to change the output settings.
*
* When one dimension is specified and the other is 0, the image is scaled
* with preserved aspect ratio. If both dimensions are 0, the API provides an
* image at source quality. If dimensions are not specified, the default size
* of image returned is 100x100px.
*
* @param {string} code
* @param {number} width
* @param {number} height
* @param {number} quality
* @throws {AppwriteException}
* @returns {URL}
*/
getBrowser(code: string, width?: number, height?: number, quality?: number): URL {
if (typeof code === 'undefined') {
throw new AppwriteException('Missing required parameter: "code"');
}
let path = '/avatars/browsers/{code}'.replace('{code}', code);
let payload: Payload = {};
if (typeof width !== 'undefined') {
payload['width'] = width;
}
if (typeof height !== 'undefined') {
payload['height'] = height;
}
if (typeof quality !== 'undefined') {
payload['quality'] = quality;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* Get Credit Card Icon
*
* 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.
*
* When one dimension is specified and the other is 0, the image is scaled
* with preserved aspect ratio. If both dimensions are 0, the API provides an
* image at source quality. If dimensions are not specified, the default size
* of image returned is 100x100px.
*
*
* @param {string} code
* @param {number} width
* @param {number} height
* @param {number} quality
* @throws {AppwriteException}
* @returns {URL}
*/
getCreditCard(code: string, width?: number, height?: number, quality?: number): URL {
if (typeof code === 'undefined') {
throw new AppwriteException('Missing required parameter: "code"');
}
let path = '/avatars/credit-cards/{code}'.replace('{code}', code);
let payload: Payload = {};
if (typeof width !== 'undefined') {
payload['width'] = width;
}
if (typeof height !== 'undefined') {
payload['height'] = height;
}
if (typeof quality !== 'undefined') {
payload['quality'] = quality;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* Get Favicon
*
* Use this endpoint to fetch the favorite icon (AKA favicon) of any remote
* website URL.
*
*
* @param {string} url
* @throws {AppwriteException}
* @returns {URL}
*/
getFavicon(url: string): URL {
if (typeof url === 'undefined') {
throw new AppwriteException('Missing required parameter: "url"');
}
let path = '/avatars/favicon';
let payload: Payload = {};
if (typeof url !== 'undefined') {
payload['url'] = url;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* Get Country Flag
*
* You can use this endpoint to show different country flags icons to your
* users. The code argument receives the 2 letter country code. Use width,
* height and quality arguments to change the output settings. Country codes
* follow the [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standard.
*
* When one dimension is specified and the other is 0, the image is scaled
* with preserved aspect ratio. If both dimensions are 0, the API provides an
* image at source quality. If dimensions are not specified, the default size
* of image returned is 100x100px.
*
*
* @param {string} code
* @param {number} width
* @param {number} height
* @param {number} quality
* @throws {AppwriteException}
* @returns {URL}
*/
getFlag(code: string, width?: number, height?: number, quality?: number): URL {
if (typeof code === 'undefined') {
throw new AppwriteException('Missing required parameter: "code"');
}
let path = '/avatars/flags/{code}'.replace('{code}', code);
let payload: Payload = {};
if (typeof width !== 'undefined') {
payload['width'] = width;
}
if (typeof height !== 'undefined') {
payload['height'] = height;
}
if (typeof quality !== 'undefined') {
payload['quality'] = quality;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* 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 case you want to make sure a 3rd party
* image is properly served using a TLS protocol.
*
* When one dimension is specified and the other is 0, the image is scaled
* with preserved aspect ratio. If both dimensions are 0, the API provides an
* image at source quality. If dimensions are not specified, the default size
* of image returned is 400x400px.
*
*
* @param {string} url
* @param {number} width
* @param {number} height
* @throws {AppwriteException}
* @returns {URL}
*/
getImage(url: string, width?: number, height?: number): URL {
if (typeof url === 'undefined') {
throw new AppwriteException('Missing required parameter: "url"');
}
let path = '/avatars/image';
let payload: Payload = {};
if (typeof url !== 'undefined') {
payload['url'] = url;
}
if (typeof width !== 'undefined') {
payload['width'] = width;
}
if (typeof height !== 'undefined') {
payload['height'] = height;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* Get User Initials
*
* Use this endpoint to show your user initials avatar icon on your website or
* app. By default, this route will try to print your logged-in user name or
* email initials. You can also overwrite the user name if you pass the 'name'
* parameter. If no name is given and no user is logged, an empty avatar will
* be returned.
*
* You can use the color and background params to change the avatar colors. By
* default, a random theme will be selected. The random theme will persist for
* the user's initials when reloading the same theme will always return for
* the same initials.
*
* When one dimension is specified and the other is 0, the image is scaled
* with preserved aspect ratio. If both dimensions are 0, the API provides an
* image at source quality. If dimensions are not specified, the default size
* of image returned is 100x100px.
*
*
* @param {string} name
* @param {number} width
* @param {number} height
* @param {string} background
* @throws {AppwriteException}
* @returns {URL}
*/
getInitials(name?: string, width?: number, height?: number, background?: string): URL {
let path = '/avatars/initials';
let payload: Payload = {};
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof width !== 'undefined') {
payload['width'] = width;
}
if (typeof height !== 'undefined') {
payload['height'] = height;
}
if (typeof background !== 'undefined') {
payload['background'] = background;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
/**
* Get QR Code
*
* 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 {boolean} download
* @throws {AppwriteException}
* @returns {URL}
*/
getQR(text: string, size?: number, margin?: number, download?: boolean): URL {
if (typeof text === 'undefined') {
throw new AppwriteException('Missing required parameter: "text"');
}
let path = '/avatars/qr';
let payload: Payload = {};
if (typeof text !== 'undefined') {
payload['text'] = text;
}
if (typeof size !== 'undefined') {
payload['size'] = size;
}
if (typeof margin !== 'undefined') {
payload['margin'] = margin;
}
if (typeof download !== 'undefined') {
payload['download'] = download;
}
const uri = new URL(this.client.config.endpoint + path);
payload['project'] = this.client.config.project;
for (const [key, value] of Object.entries(Service.flatten(payload))) {
uri.searchParams.append(key, value);
}
return uri;
}
};