UNPKG

@memori.ai/memori-api-client

Version:

React library to integrate a Memori in your app or website

83 lines (76 loc) 2.24 kB
import { ResponseSpec, Tenant } from '../types'; import { apiFetcher } from '../apiFetcher'; export default (apiUrl: string) => ({ /** * Health check for the backend */ healthCheck: () => apiFetcher(`/HealthCheck`, { apiUrl, method: 'GET', }) as Promise<ResponseSpec>, /** * Gets the details of a Tenant object. * @param tenantName - The name of the tenant */ getTenant: (tenantName: string) => apiFetcher(`/Tenant/${tenantName}`, { apiUrl }) as Promise< ResponseSpec & { tenant: Tenant; } >, /** * Gets the details of a Tenant object as an admin user. * @param tenantName - The name of the tenant * @param authToken - The login token */ getTenantAuthenticated: (tenantName: string, authToken: string) => apiFetcher(`/Tenant/${authToken}/${tenantName}`, { apiUrl }) as Promise< ResponseSpec & { tenant: Tenant; } >, /** * Gets the list of of all Tenant objects. * @param authToken - The login token */ getTenantList: (authToken: string) => apiFetcher(`/Tenants/${authToken}`, { apiUrl, method: 'GET', }) as Promise<ResponseSpec & { tenants: Tenant[] }>, /** * Duplicates a Tenant object. * @param {string} authToken - The login token * @param {string} name - The name of the Tenant to duplicate * @param {TenantBase} tenant * @returns The specifications of the new Tenant object */ createTenant: (authToken: string, name: string, tenant: Partial<Tenant>) => apiFetcher(`/Tenant/${authToken}/${name}`, { apiUrl, method: 'POST', body: tenant, }) as Promise< ResponseSpec & { tenant: Tenant; } >, /** * Updates the details of a Tenant object. * @param {string} authToken - The login token * @param {string} name - The name of the Tenant to update * @param {Tenant} tenant * @returns The new specifications of the Tenant object */ patchTenant: (authToken: string, name: string, tenant: Partial<Tenant>) => apiFetcher(`/Tenant/${authToken}/${name}`, { apiUrl, method: 'PATCH', body: tenant, }) as Promise< ResponseSpec & { tenant: Tenant; } >, });