From 897f5763eb10ffc340ec33a56da9f8ddbe1ef28d Mon Sep 17 00:00:00 2001 From: Jake Wagoner Date: Thu, 21 Sep 2023 16:47:17 -0600 Subject: [PATCH] Add generateAltText function --- src/axios.ts | 19 +++++++++++++++++++ src/index.ts | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/src/axios.ts b/src/axios.ts index e801881..71a64f9 100644 --- a/src/axios.ts +++ b/src/axios.ts @@ -73,6 +73,7 @@ export interface MultinetAxiosInstance extends AxiosInstance { updateSession(workspace: string, sessionId: number, type: 'network' | 'table', state: object): AxiosPromise; renameSession(workspace: string, sessionId: number, type: 'network' | 'table', name: string): AxiosPromise; getSession(workspace: string, sessionId: number, type: 'network' | 'table'): AxiosPromise; + generateAltText(verbosity: string, level: number, explain: string, data: object, title?: string): AxiosPromise; } export function multinetAxiosInstance(config: AxiosRequestConfig): MultinetAxiosInstance { @@ -268,5 +269,23 @@ export function multinetAxiosInstance(config: AxiosRequestConfig): MultinetAxios return this.get(`workspaces/${workspace}/sessions/${type}/${sessionId}/`); }; + Proto.generateAltText = function(verbosity: string, level: number, explain: string, data: object, title?: string): AxiosPromise { + const jsonString = JSON.stringify(data); + const blob = new Blob([jsonString], { type: 'application/json' }); + const file = new File([blob], 'data.json'); + + const formData = new FormData(); + + formData.append('verbosity', verbosity); + formData.append('level', level.toString()); + formData.append('explain', explain); + formData.append('data', file); + if (title) { + formData.append('title', title); + } + + return this.post(`alttxt/`, formData); + }; + return axiosInstance as MultinetAxiosInstance; } diff --git a/src/index.ts b/src/index.ts index bab9f4a..b287003 100644 --- a/src/index.ts +++ b/src/index.ts @@ -284,6 +284,10 @@ class MultinetAPI { public async getSession(workspace: string, sessionId: number, type: 'network' | 'table'): Promise { return (await this.axios.getSession(workspace, sessionId, type)).data; } + + public async generateAltText(verbosity: string, level: number, explain: string, data: object, title?: string): Promise { + return (await this.axios.generateAltText(verbosity, level, explain, data, title)).data; + } } export function multinetApi(baseURL: string): MultinetAPI {