UNPKG

appwrite

Version:

Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API

170 lines (151 loc) 5.17 kB
import { Service } from '../service'; import { AppwriteException, Client } from '../client'; import type { Models } from '../models'; import type { UploadProgress, Payload } from '../client'; export class Locale extends Service { constructor(client: Client) { super(client); } /** * Get user locale * * Get the current user location based on IP. Returns an object with user * country code, country name, continent name, continent code, ip address and * suggested currency. You can use the locale header to get the data in a * supported language. * * ([IP Geolocation by DB-IP](https://db-ip.com)) * * @throws {AppwriteException} * @returns {Promise} */ async get(): Promise<Models.Locale> { const apiPath = '/locale'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List Locale Codes * * List of all locale codes in [ISO * 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). * * @throws {AppwriteException} * @returns {Promise} */ async listCodes(): Promise<Models.LocaleCodeList> { const apiPath = '/locale/codes'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List continents * * List of all continents. You can use the locale header to get the data in a * supported language. * * @throws {AppwriteException} * @returns {Promise} */ async listContinents(): Promise<Models.ContinentList> { const apiPath = '/locale/continents'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List countries * * List of all countries. You can use the locale header to get the data in a * supported language. * * @throws {AppwriteException} * @returns {Promise} */ async listCountries(): Promise<Models.CountryList> { const apiPath = '/locale/countries'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List EU countries * * List of all countries that are currently members of the EU. You can use the * locale header to get the data in a supported language. * * @throws {AppwriteException} * @returns {Promise} */ async listCountriesEU(): Promise<Models.CountryList> { const apiPath = '/locale/countries/eu'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List countries phone codes * * List of all countries phone codes. You can use the locale header to get the * data in a supported language. * * @throws {AppwriteException} * @returns {Promise} */ async listCountriesPhones(): Promise<Models.PhoneList> { const apiPath = '/locale/countries/phones'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List currencies * * List of all currencies, including currency symbol, name, plural, and * decimal digits for all major and minor currencies. You can use the locale * header to get the data in a supported language. * * @throws {AppwriteException} * @returns {Promise} */ async listCurrencies(): Promise<Models.CurrencyList> { const apiPath = '/locale/currencies'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } /** * List languages * * List of all languages classified by ISO 639-1 including 2-letter code, name * in English, and name in the respective language. * * @throws {AppwriteException} * @returns {Promise} */ async listLanguages(): Promise<Models.LanguageList> { const apiPath = '/locale/languages'; const payload: Payload = {}; const uri = new URL(this.client.config.endpoint + apiPath); return await this.client.call('get', uri, { 'content-type': 'application/json', }, payload); } };