UNPKG

@memori.ai/memori-api-client

Version:

React library to integrate a Memori in your app or website

125 lines (118 loc) 3.19 kB
import { ResponseSpec, MemoriUser, Topic } from '../types'; import { apiFetcher } from '../apiFetcher'; /**************** * * * Topics * * * ****************/ export default (apiUrl: string) => ({ /** * Lists all Topic objects. * @param {string} sessionId The session ID */ getTopics: async (sessionId: string) => apiFetcher(`/Topics/${sessionId}`, { method: 'GET', apiUrl, }) as Promise< ResponseSpec & { /** * Total number of MemoriUser objects. */ count: number; /** * List of MemoriUser objects. May be empty. */ topics: Topic[]; } >, /** * Lists Topic objects with pagination. * @param {string} sessionId The session ID * @param {number} from The 0-based index of the first Topics object to list * @param {number} howMany The number of the Topics objects to list */ getTopicsPaginated: async ( sessionId: string, from: number, howMany: number ) => apiFetcher(`/Topics/${sessionId}/${from}/${howMany}`, { method: 'GET', apiUrl, }) as Promise< ResponseSpec & { /** * Total number of Topic objects. */ count: number; /** * List of Topic objects. May be empty. */ topics: Topic[]; } >, /** * Gets the details of a Topic object. * @param {string} sessionId The session ID * @param {string} topicID The Topic object ID */ getTopic: async (sessionId: string, topicID: string) => apiFetcher(`/Topic/${sessionId}/${topicID}`, { method: 'GET', apiUrl, }) as Promise< ResponseSpec & { topic: Topic; } >, /** * Lists all MemoriUser objects referencing a specified Topic object. * @param {string} sessionId The session ID * @param {string} topicId The Topic object ID */ getTopicUsers: async (sessionId: string, topicId: string) => apiFetcher(`/TopicUsers/${sessionId}/${topicId}`, { method: 'GET', apiUrl, }) as Promise< ResponseSpec & { /** * Total number of MemoriUser objects. */ count: number; /** * List of MemoriUser objects. May be empty. */ users: MemoriUser[]; } >, /** * Lists all MemoriUser objects referencing a specified Topic object, with pagination. * @param {string} sessionId The session ID * @param {string} topicId The Topic object ID * @param {number} from The 0-based index of the first MemoriUser object to list * @param {number} howMany The number of the MemoriUser objects to list */ getTopicUsersPaginated: async ( sessionId: string, topicId: string, from: number, howMany: number ) => apiFetcher(`/TopicUsers/${sessionId}/${topicId}/${from}/${howMany}`, { method: 'GET', apiUrl, }) as Promise< ResponseSpec & { /** * Total number of MemoriUser objects. */ count: number; /** * List of MemoriUser objects. May be empty. */ users: MemoriUser[]; } >, });