29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
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<void> {
|
|
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<void> {
|
|
return copyElement(server, credentials, data, true);
|
|
}
|