DocSpace-buildtools/web/ASC.Web.Common/src/api/files/index.js

308 lines
6.6 KiB
JavaScript
Raw Normal View History

import { request } from "../client";
import axios from "axios";
2020-03-13 15:11:15 +00:00
import FilesFilter from "./filter";
import * as fakeFiles from "./fake";
export function getFolderInfo(folderId) {
const options = {
method: "get",
url: `/files/folder/${folderId}`
};
return request(options);
}
export function getFolderPath(folderId) {
const options = {
method: "get",
url: `/files/folder/${folderId}/path`
};
return request(options);
}
2020-03-19 10:49:16 +00:00
export function getFolder(folderId, filter, fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "Fake folder");
}
2020-03-13 15:11:15 +00:00
const params =
filter && filter instanceof FilesFilter
? `${folderId}?${filter.toUrlParams()}`
: folderId;
2020-03-13 15:11:15 +00:00
const options = {
method: "get",
2020-03-13 15:11:15 +00:00
url: `/files/${params}`
};
return request(options);
}
export function getFoldersTree() {
const rootFoldersPaths = ['@my', '@share', '@common', /*'@projects',*/ '@trash']; //TODO: need get from settings
const requestsArray = rootFoldersPaths.map(path => request({ method: "get", url: `/files/${path}` }));
return axios.all(requestsArray)
.then(axios.spread((...responses) =>
responses.map((data, index) => {
const trashIndex = 3;
return {
id: data.current.id,
key: `0-${index}`,
title: data.current.title,
folders: index !== trashIndex ? data.folders.map(folder => {
return {
id: folder.id,
title: folder.title,
foldersCount: folder.foldersCount
}
}) : null,
pathParts: data.pathParts,
foldersCount: index !== trashIndex ? data.current.foldersCount : null
}
})
))
}
2020-03-13 15:11:15 +00:00
export function getMyFolderList(filter = FilesFilter.getDefault(), fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "My Documents");
}
const options = {
method: "get",
url: `/files/@my`
};
return request(options);
}
2020-03-13 15:11:15 +00:00
export function getCommonFolderList(filter = FilesFilter.getDefault(), fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "Common Documents");
}
const options = {
method: "get",
url: `/files/@common`
};
return request(options);
}
2020-03-13 15:11:15 +00:00
export function getProjectsFolderList(filter = FilesFilter.getDefault(), fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "Project Documents");
}
const options = {
method: "get",
url: `/files/@projects`
};
return request(options);
}
2020-03-13 15:11:15 +00:00
export function getTrashFolderList(filter = FilesFilter.getDefault(), fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "Recycle Bin");
}
const options = {
method: "get",
url: `/files/@trash`
};
return request(options);
}
2020-03-13 15:11:15 +00:00
export function getSharedFolderList(filter = FilesFilter.getDefault(), fake = false) {
if (fake) {
return fakeFiles.getFakeElements(filter, "Shared with Me");
}
const options = {
method: "get",
url: `/files/@share`
};
return request(options);
}
export function createFolder(parentFolderId, title) {
const data = { title };
const options = {
method: "post",
url: `/files/folder/${parentFolderId}`,
data
};
return request(options);
}
export function renameFolder(folderId, title) {
const data = { title };
const options = {
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}`,
data
};
return request(options);
}
export function createFile(folderId, title) {
const data = { title };
const options = {
method: "post",
url: `/files/${folderId}/file`,
data
};
return request(options);
}
export function createTextFile(folderId, title, content) {
const data = { title, content };
const options = {
method: "post",
url: `/files/${folderId}/text`,
data
};
return request(options);
}
export function createTextFileInMy(title) {
const data = { title };
const options = {
method: "post",
url: "/files/@my/file",
data
};
return request(options);
}
export function createTextFileInCommon(title) {
const data = { title };
const options = {
method: "post",
url: "/files/@common/file",
data
};
return request(options);
}
export function createHtmlFile(folderId, title, content) {
const data = { title, content };
const options = {
method: "post",
url: `/files/${folderId}/html`,
data
};
return request(options);
}
export function createHtmlFileInMy(title, content) {
const data = { title, content };
const options = {
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}`,
data
};
return request(options);
}
export function deleteFile(fileId, deleteAfter, immediately) {
const data = { deleteAfter, immediately };
const options = {
method: "delete",
url: `/files/file/${fileId}`,
data
};
return request(options);
}
export function emptyTrash() {
return request({ method: "put", url: "/files/fileops/emptytrash" });
}
export function removeFiles(folderIds, fileIds, deleteAfter, immediately) {
const data = { folderIds, fileIds, deleteAfter, immediately };
return request({ method: "put", url: "/files/fileops/delete", data });
}
export function getShareFolders(folderId) {
return request({
method: "get",
url: `/files/folder/${folderId}/share`
});
}
export function getShareFiles(fileId) {
return request({
method: "get",
url: `/files/file/${fileId}/share`
});
}
2020-04-07 07:17:57 +00:00
export function setShareFolder(folderId, shareTo, access, notify, sharingMessage) {
const share = [shareTo, access];
const data = { share, notify, sharingMessage };
return request({ method: "put", url: `/files/folder/${folderId}/share`, data });
}
export function setShareFiles(fileId, shareTo, access, notify, sharingMessage) {
const share = [shareTo, access];
const data = { share, notify, sharingMessage };
return request({ method: "put", url: `/files/file/${fileId}/share`, data });
}