import { Responses, Requests, get_token, post_token, post_token_form, isErrorResponse } from './base'; export const get_root = ( token: string ): Promise => get_token('/api/fs/root', token); export const get_node = ( token: string, node: number ): Promise => get_token(`/api/fs/node/${node}`, token); export const get_path = ( token: string, node: number ): Promise => get_token(`/api/fs/path/${node}`, token); export const create_folder = ( token: string, parent: number, name: string ): Promise => post_token( '/api/fs/createFolder', { parent: parent, name: name }, token ); export const create_file = ( token: string, parent: number, name: string ): Promise => post_token( '/api/fs/createFile', { parent: parent, name: name }, token ); export const delete_node = ( token: string, node: number ): Promise => post_token(`/api/fs/delete/${node}`, {}, token); export const upload_file = async ( token: string, parent: number, file: File, onProgress: (progressEvent: ProgressEvent) => void ): Promise => { const node = await create_file(token, parent, file.name); if (isErrorResponse(node)) return node; const form = new FormData(); form.set('file', file); return post_token_form( `/api/fs/upload/${node.id}`, form, token, onProgress ); }; export function download_file(token: string, id: number) { const form = document.createElement('form'); form.method = 'post'; form.target = '_blank'; form.action = '/api/fs/download'; form.innerHTML = ``; document.body.appendChild(form); form.submit(); document.body.removeChild(form); }