import {withCredentials} from "@/api/http"; import {ServerApplicationCredentials} from "@/store/types"; type PathChangeObject = { currentPath: string, newPath: string, } /** * Creates a copy of the given file or directory on the Daemon. Expects a fully resolved path * to be passed through for both data arguments. */ export function copyElement(server: string, credentials: ServerApplicationCredentials, data: PathChangeObject, isMove = false): Promise { return new Promise((resolve, reject) => { withCredentials(server, credentials).post(`/v1/server/file/${isMove ? 'move' : 'copy'}`, { from: data.currentPath, to: data.newPath, }) .then(() => resolve()) .catch(reject); }); } /** * Moves a file or folder to a new location on the server. Works almost exactly the same as the copy * file logic, so it really just passes an extra argument to copy to indicate that it is a move. */ export function moveElement(server: string, credentials: ServerApplicationCredentials, data: PathChangeObject): Promise { return copyElement(server, credentials, data, true); }