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); }