27 lines
854 B
TypeScript
27 lines
854 B
TypeScript
import http from '@/api/http';
|
|
import { rawDataToFileObject } from '@/api/transformers';
|
|
|
|
export interface FileObject {
|
|
key: string;
|
|
name: string;
|
|
mode: string;
|
|
modeBits: string,
|
|
size: number;
|
|
isFile: boolean;
|
|
isSymlink: boolean;
|
|
mimetype: string;
|
|
createdAt: Date;
|
|
modifiedAt: Date;
|
|
isArchiveType: () => boolean;
|
|
isEditable: () => boolean;
|
|
}
|
|
|
|
export default async (uuid: string, directory?: string): Promise<FileObject[]> => {
|
|
const { data } = await http.get(`/api/client/servers/${uuid}/files/list`, {
|
|
// At this point the directory is still encoded so we need to decode it since axios
|
|
// will automatically re-encode this value before sending it along in the request.
|
|
params: { directory: directory ?? '/' },
|
|
});
|
|
|
|
return (data.data || []).map(rawDataToFileObject);
|
|
};
|