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

378 lines
8.9 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";
export function openEdit(fileId) {
const options = {
method: "get",
url: `/files/file/${fileId}/openedit`
};
return request(options);
}
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-05-26 09:53:34 +00:00
export function getFolder(folderId, filter) {
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,
access: folder.access,
foldersCount: folder.foldersCount,
2020-06-30 12:00:44 +00:00
rootFolderType: folder.rootFolderType,
newItems: folder.new
}
}) : null,
pathParts: data.pathParts,
2020-06-26 12:52:46 +00:00
foldersCount: index !== trashIndex ? data.current.foldersCount : null,
newItems: data.new
}
})
))
}
2020-05-26 09:53:34 +00:00
export function getMyFolderList(filter = FilesFilter.getDefault()) {
const options = {
method: "get",
url: `/files/@my`
};
return request(options);
}
2020-05-26 09:53:34 +00:00
export function getCommonFolderList(filter = FilesFilter.getDefault()) {
const options = {
method: "get",
url: `/files/@common`
};
return request(options);
}
2020-05-26 09:53:34 +00:00
export function getProjectsFolderList(filter = FilesFilter.getDefault()) {
const options = {
method: "get",
url: `/files/@projects`
};
return request(options);
}
2020-05-26 09:53:34 +00:00
export function getTrashFolderList(filter = FilesFilter.getDefault()) {
const options = {
method: "get",
url: `/files/@trash`
};
return request(options);
}
2020-05-26 09:53:34 +00:00
export function getSharedFolderList(filter = FilesFilter.getDefault()) {
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
2020-05-15 15:47:35 +00:00
export function setShareFolder(folderId, share, notify, sharingMessage) {
2020-04-07 07:17:57 +00:00
const data = { share, notify, sharingMessage };
return request({ method: "put", url: `/files/folder/${folderId}/share`, data });
}
2020-05-15 15:47:35 +00:00
export function setShareFiles(fileId, share, notify, sharingMessage) {
2020-04-07 07:17:57 +00:00
const data = { share, notify, sharingMessage };
return request({ method: "put", url: `/files/file/${fileId}/share`, data });
}
2020-04-23 08:55:45 +00:00
export function startUploadSession(folderId, fileName, fileSize, relativePath) {
const data = { fileName, fileSize, relativePath };
return request({ method: "post", url: `/files/${folderId}/upload/create_session.json`, data });
}
export function uploadFile(url, data) {
return axios.post(url, data);
}
export function downloadFiles(fileIds, folderIds) {
const data = { fileIds, folderIds };
return request({ method: "put", url: "/files/fileops/bulkdownload", data });
}
2020-05-15 18:25:31 +00:00
export function downloadFormatFiles(fileConvertIds, folderIds) {
const data = { folderIds, fileConvertIds };
return request({ method: "put", url: "/files/fileops/bulkdownload", data });
}
export function getProgress() {
return request({ method: "get", url: "/files/fileops" });
}
2020-05-20 07:55:26 +00:00
export function copyToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter) {
const data = { destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter };
return request({ method: "put", url: "/files/fileops/copy", data });
}
export function moveToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter) {
const data = { destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter };
return request({ method: "put", url: "/files/fileops/move", data });
}
2020-06-18 14:45:35 +00:00
export function getFileVersionInfo(fileId) {
return request({
method: "get",
url: `/files/file/${fileId}/history`
});
}
2020-06-26 12:52:46 +00:00
export function markAsRead(folderIds, fileIds) {
const data = { folderIds, fileIds};
return request({ method: "put", url: "/files/fileops/markasread", data });
}
export function getNewFiles(folderId) {
return request({
method: "get",
url: `/files/${folderId}/news`
});
}
2020-07-07 07:27:04 +00:00
export function convertFile(fileId) {
return request({ method: "put", url: `/files/file/${fileId}/checkconversion` });
}
export function getConvertFile(fileId) {
return request({ method: "get", url: `/files/file/${fileId}/checkconversion` });
2020-07-07 07:27:04 +00:00
}
export function finalizeVersion(fileId, version, continueVersion) {
const data = { fileId, version, continueVersion };
return request({
method: "put",
url: `/files/file/${fileId}/history`,
data
});
}
2020-08-12 08:08:04 +00:00
export function markAsVersion(fileId, continueVersion, version) {
const data = { continueVersion, version };
return request({ method: "put", url: `/files/file/${fileId}/history`, data });
}
export function versionEditComment(fileId, comment, version) {
const data = { comment, version };
return request({ method: "put", url: `/files/file/${fileId}/comment`, data });
}
export function versionRestore(fileId, version) {
const data = { version };
return request({ method: "put", url: `/files/file/${fileId}`, data });
}