2020-02-28 13:08:03 +00:00
|
|
|
import { request } from "../client";
|
2020-03-19 12:07:05 +00:00
|
|
|
import axios from "axios";
|
2020-03-13 15:11:15 +00:00
|
|
|
import FilesFilter from "./filter";
|
2020-02-28 10:33:13 +00:00
|
|
|
import * as fakeFiles from "./fake";
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function getFolderInfo(folderId) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-02 10:47:51 +00:00
|
|
|
method: "get",
|
2020-03-11 11:15:44 +00:00
|
|
|
url: `/files/folder/${folderId}`
|
2020-03-11 10:53:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-02 10:47:51 +00:00
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function getFolderPath(folderId) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-02 14:08:53 +00:00
|
|
|
method: "get",
|
2020-03-11 11:15:44 +00:00
|
|
|
url: `/files/folder/${folderId}/path`
|
2020-03-11 10:53:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-02 14:08:53 +00:00
|
|
|
}
|
|
|
|
|
2020-03-19 10:49:16 +00:00
|
|
|
export function getFolder(folderId, filter, fake = false) {
|
2020-03-11 11:15:44 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "Fake folder");
|
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
const params =
|
2020-03-19 12:07:05 +00:00
|
|
|
filter && filter instanceof FilesFilter
|
|
|
|
? `${folderId}?${filter.toUrlParams()}`
|
|
|
|
: folderId;
|
2020-03-13 15:11:15 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-02 14:08:53 +00:00
|
|
|
method: "get",
|
2020-03-13 15:11:15 +00:00
|
|
|
url: `/files/${params}`
|
2020-03-11 10:53:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-02 14:08:53 +00:00
|
|
|
}
|
|
|
|
|
2020-03-19 12:07:05 +00:00
|
|
|
export function getFoldersTree() {
|
2020-03-20 11:59:07 +00:00
|
|
|
const rootFoldersPaths = ['@my', '@share', '@common', /*'@projects',*/ '@trash']; //TODO: need get from settings
|
2020-03-19 12:07:05 +00:00
|
|
|
const requestsArray = rootFoldersPaths.map(path => request({ method: "get", url: `/files/${path}` }));
|
|
|
|
|
|
|
|
return axios.all(requestsArray)
|
|
|
|
.then(axios.spread((...responses) =>
|
2020-03-20 11:59:07 +00:00
|
|
|
responses.map((data, index) => {
|
|
|
|
const trashIndex = 3;
|
2020-03-19 12:07:05 +00:00
|
|
|
return {
|
|
|
|
id: data.current.id,
|
2020-03-20 11:59:07 +00:00
|
|
|
key: `0-${index}`,
|
2020-03-19 12:07:05 +00:00
|
|
|
title: data.current.title,
|
2020-03-20 11:59:07 +00:00
|
|
|
folders: index !== trashIndex ? data.folders.map(folder => {
|
2020-03-19 12:07:05 +00:00
|
|
|
return {
|
|
|
|
id: folder.id,
|
|
|
|
title: folder.title,
|
2020-03-23 10:42:37 +00:00
|
|
|
foldersCount: folder.foldersCount
|
2020-03-19 12:07:05 +00:00
|
|
|
}
|
2020-03-20 11:59:07 +00:00
|
|
|
}) : null,
|
|
|
|
pathParts: data.pathParts,
|
|
|
|
foldersCount: index !== trashIndex ? data.current.foldersCount : null
|
2020-03-19 12:07:05 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
))
|
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
export function getMyFolderList(filter = FilesFilter.getDefault(), fake = false) {
|
2020-02-28 13:08:03 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "My Documents");
|
|
|
|
}
|
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-02-28 13:08:03 +00:00
|
|
|
method: "get",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/@my`
|
|
|
|
};
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
return request(options);
|
2020-02-28 13:08:03 +00:00
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
export function getCommonFolderList(filter = FilesFilter.getDefault(), fake = false) {
|
2020-02-28 14:21:15 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "Common Documents");
|
|
|
|
}
|
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-02-28 14:21:15 +00:00
|
|
|
method: "get",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/@common`
|
|
|
|
};
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
return request(options);
|
2020-02-28 14:21:15 +00:00
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
export function getProjectsFolderList(filter = FilesFilter.getDefault(), fake = false) {
|
2020-02-28 14:21:15 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "Project Documents");
|
|
|
|
}
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-02-28 14:21:15 +00:00
|
|
|
method: "get",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/@projects`
|
|
|
|
};
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
return request(options);
|
2020-02-28 14:21:15 +00:00
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
export function getTrashFolderList(filter = FilesFilter.getDefault(), fake = false) {
|
2020-02-28 13:08:03 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "Recycle Bin");
|
|
|
|
}
|
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-02-28 13:08:03 +00:00
|
|
|
method: "get",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/@trash`
|
|
|
|
};
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
return request(options);
|
2020-03-02 08:17:32 +00:00
|
|
|
}
|
|
|
|
|
2020-03-13 15:11:15 +00:00
|
|
|
export function getSharedFolderList(filter = FilesFilter.getDefault(), fake = false) {
|
2020-03-02 09:30:47 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakeFiles.getFakeElements(filter, "Shared with Me");
|
|
|
|
}
|
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-02 09:30:47 +00:00
|
|
|
method: "get",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/@share`
|
|
|
|
};
|
2020-03-19 12:07:05 +00:00
|
|
|
|
2020-03-11 10:53:49 +00:00
|
|
|
return request(options);
|
2020-03-02 09:30:47 +00:00
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createFolder(parentFolderId, title) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const data = { title };
|
2020-03-02 08:17:32 +00:00
|
|
|
const options = {
|
|
|
|
method: "post",
|
2020-03-11 11:15:44 +00:00
|
|
|
url: `/files/folder/${parentFolderId}`,
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 08:17:32 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function renameFolder(folderId, title) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const data = { title };
|
2020-03-02 14:08:53 +00:00
|
|
|
const options = {
|
2020-03-11 11:15:44 +00:00
|
|
|
method: "put",
|
|
|
|
url: `/files/folder/${folderId}`,
|
|
|
|
data
|
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function deleteFolder(folderId, deleteAfter, immediately) {
|
|
|
|
const data = { deleteAfter, immediately };
|
|
|
|
const options = {
|
|
|
|
method: "delete",
|
|
|
|
url: `/files/folder/${folderId}`,
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 14:08:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createFile(folderId, title) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const data = { title };
|
2020-03-02 08:17:32 +00:00
|
|
|
const options = {
|
|
|
|
method: "post",
|
|
|
|
url: `/files/${folderId}/file`,
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 08:17:32 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-02 14:08:53 +00:00
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createTextFile(folderId, title, content) {
|
|
|
|
const data = { title, content };
|
2020-03-02 14:08:53 +00:00
|
|
|
const options = {
|
2020-03-11 11:15:44 +00:00
|
|
|
method: "post",
|
|
|
|
url: `/files/${folderId}/text`,
|
|
|
|
data
|
2020-03-02 14:08:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createTextFileInMy(title) {
|
|
|
|
const data = { title };
|
2020-03-02 14:08:53 +00:00
|
|
|
const options = {
|
2020-03-11 11:15:44 +00:00
|
|
|
method: "post",
|
|
|
|
url: "/files/@my/file",
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 14:08:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createTextFileInCommon(title) {
|
2020-03-11 10:53:49 +00:00
|
|
|
const data = { title };
|
2020-03-02 14:08:53 +00:00
|
|
|
const options = {
|
|
|
|
method: "post",
|
2020-03-11 11:15:44 +00:00
|
|
|
url: "/files/@common/file",
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 14:08:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createHtmlFile(folderId, title, content) {
|
|
|
|
const data = { title, content };
|
2020-03-02 14:08:53 +00:00
|
|
|
const options = {
|
2020-03-11 11:15:44 +00:00
|
|
|
method: "post",
|
|
|
|
url: `/files/${folderId}/html`,
|
2020-03-11 10:53:49 +00:00
|
|
|
data
|
2020-03-02 14:08:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
2020-03-11 11:15:44 +00:00
|
|
|
export function createHtmlFileInMy(title, content) {
|
|
|
|
const data = { title, content };
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-11 11:15:44 +00:00
|
|
|
method: "post",
|
|
|
|
url: "/files/@my/html",
|
|
|
|
data
|
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function createHtmlFileInCommon(title, content) {
|
|
|
|
const data = { title, content };
|
|
|
|
const options = {
|
|
|
|
method: "post",
|
|
|
|
url: "/files/@common/html",
|
|
|
|
data
|
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getFileInfo(fileId) {
|
|
|
|
const options = {
|
|
|
|
method: "get",
|
|
|
|
url: `/files/file/${fileId}`
|
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateFile(fileId, title, lastVersion) {
|
|
|
|
const data = { title, lastVersion };
|
|
|
|
const options = {
|
|
|
|
method: "put",
|
|
|
|
url: `/files/file/${fileId}`,
|
2020-03-06 11:27:51 +00:00
|
|
|
data
|
2020-03-11 10:53:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-02 14:08:53 +00:00
|
|
|
}
|
|
|
|
|
2020-03-06 11:27:51 +00:00
|
|
|
export function deleteFile(fileId, deleteAfter, immediately) {
|
|
|
|
const data = { deleteAfter, immediately };
|
2020-03-11 10:53:49 +00:00
|
|
|
const options = {
|
2020-03-06 11:27:51 +00:00
|
|
|
method: "delete",
|
2020-03-11 10:53:49 +00:00
|
|
|
url: `/files/file/${fileId}`,
|
2020-03-06 11:27:51 +00:00
|
|
|
data
|
2020-03-11 10:53:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return request(options);
|
2020-03-19 12:25:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export function emptyTrash() {
|
|
|
|
return request({ method: "put", url: "/files/fileops/emptytrash" });
|
|
|
|
}
|