Add support for compressing items in the file manager

This commit is contained in:
Dane Everitt 2020-07-11 13:38:49 -07:00
parent cb9eb918b2
commit 82bc9e617b
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
8 changed files with 137 additions and 33 deletions

View file

@ -0,0 +1,12 @@
import { FileObject } from '@/api/server/files/loadDirectory';
import http from '@/api/http';
import { rawDataToFileObject } from '@/api/transformers';
export default async (uuid: string, directory: string, files: string[]): Promise<FileObject> => {
const { data } = await http.post(`/api/client/servers/${uuid}/files/compress`, { root: directory, files }, {
timeout: 300000,
timeoutErrorMessage: 'It looks like this archive is taking a long time to generate. It will appear when completed.',
});
return rawDataToFileObject(data);
};

View file

@ -1,5 +1,5 @@
import http from '@/api/http';
import v4 from 'uuid/v4';
import { rawDataToFileObject } from '@/api/transformers';
export interface FileObject {
uuid: string;
@ -19,16 +19,5 @@ export default async (uuid: string, directory?: string): Promise<FileObject[]> =
params: { directory },
});
return (data.data || []).map((item: any): FileObject => ({
uuid: v4(),
name: item.attributes.name,
mode: item.attributes.mode,
size: Number(item.attributes.size),
isFile: item.attributes.is_file,
isSymlink: item.attributes.is_symlink,
isEditable: item.attributes.is_editable,
mimetype: item.attributes.mimetype,
createdAt: new Date(item.attributes.created_at),
modifiedAt: new Date(item.attributes.modified_at),
}));
return (data.data || []).map(rawDataToFileObject);
};