Client: Shared: ExportRoomIndex: Add error handling. Add typescript
This commit is contained in:
parent
3e3d15f715
commit
ee89a8a40b
@ -450,16 +450,14 @@ const SectionHeaderContent = (props) => {
|
||||
try {
|
||||
showLoader();
|
||||
|
||||
const { fileName, fileUrl } =
|
||||
await onClickExportRoomIndex(selectedFolder);
|
||||
const result = await onClickExportRoomIndex(selectedFolder?.id);
|
||||
if (!result) return;
|
||||
|
||||
const urlWithProxy = combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
fileUrl,
|
||||
result.fileUrl,
|
||||
);
|
||||
|
||||
if (!fileName) return;
|
||||
|
||||
const toastMessage = (
|
||||
<>
|
||||
<Link
|
||||
@ -468,7 +466,7 @@ const SectionHeaderContent = (props) => {
|
||||
target="_blank"
|
||||
href={urlWithProxy}
|
||||
>
|
||||
{fileName}
|
||||
{result.fileName}
|
||||
</Link>
|
||||
|
||||
<Text as="span" fontSize="12px">
|
||||
|
@ -104,6 +104,7 @@ import {
|
||||
UrlActionType,
|
||||
EmployeeType,
|
||||
FilesSelectorFilterTypes,
|
||||
ExportRoomIndexTaskStatus,
|
||||
} from "@docspace/shared/enums";
|
||||
import FilesFilter from "@docspace/shared/api/files/filter";
|
||||
import { getFileLink, getFolderLink } from "@docspace/shared/api/files";
|
||||
@ -913,8 +914,6 @@ class ContextOptionsStore {
|
||||
while (!isCompleted) {
|
||||
res = await this.checkExportRoomIndexProgress();
|
||||
|
||||
console.log("res", res);
|
||||
|
||||
if (res?.isCompleted) {
|
||||
isCompleted = true;
|
||||
}
|
||||
@ -923,18 +922,25 @@ class ContextOptionsStore {
|
||||
return res;
|
||||
};
|
||||
|
||||
onClickExportRoomIndex = async (room) => {
|
||||
onClickExportRoomIndex = async (roomId) => {
|
||||
try {
|
||||
let res = await api.rooms.exportRoomIndex(room.id);
|
||||
let res = await api.rooms.exportRoomIndex(roomId);
|
||||
|
||||
if (!res.isCompleted) {
|
||||
res = await this.loopExportRoomIndexStatusChecking();
|
||||
}
|
||||
|
||||
return {
|
||||
fileName: res.resultFileName,
|
||||
fileUrl: res.resultFileUrl,
|
||||
};
|
||||
if (res.status === ExportRoomIndexTaskStatus.Failed) {
|
||||
toastr.error(res.error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (res.status === ExportRoomIndexTaskStatus.Completed) {
|
||||
return {
|
||||
fileName: res.resultFileName,
|
||||
fileUrl: res.resultFileUrl,
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
toastr.error(e);
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ import {
|
||||
toUrlParams,
|
||||
} from "../../utils/common";
|
||||
import RoomsFilter from "./filter";
|
||||
import { TGetRooms } from "./types";
|
||||
import { TExportRoomIndexTask, TGetRooms } from "./types";
|
||||
|
||||
export async function getRooms(filter: RoomsFilter, signal?: AbortSignal) {
|
||||
let params;
|
||||
@ -482,12 +482,12 @@ export function exportRoomIndex(roomId: number) {
|
||||
return request({
|
||||
method: "post",
|
||||
url: `files/rooms/${roomId}/indexexport`,
|
||||
});
|
||||
}) as Promise<TExportRoomIndexTask>;
|
||||
}
|
||||
|
||||
export function getExportRoomIndexProgress() {
|
||||
return request({
|
||||
method: "get",
|
||||
url: `files/rooms/indexexport`,
|
||||
});
|
||||
}) as Promise<TExportRoomIndexTask>;
|
||||
}
|
||||
|
@ -25,7 +25,12 @@
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
import { TFile, TFolder } from "../files/types";
|
||||
import { FolderType, RoomsType, ShareAccessRights } from "../../enums";
|
||||
import {
|
||||
ExportRoomIndexTaskStatus,
|
||||
FolderType,
|
||||
RoomsType,
|
||||
ShareAccessRights,
|
||||
} from "../../enums";
|
||||
import { TCreatedBy, TPathParts } from "../../types";
|
||||
|
||||
export type TLogo = {
|
||||
@ -91,3 +96,14 @@ export type TGetRooms = {
|
||||
total: number;
|
||||
new: number;
|
||||
};
|
||||
|
||||
export type TExportRoomIndexTask = {
|
||||
id: string;
|
||||
error: string;
|
||||
percentage: number;
|
||||
isCompleted: boolean;
|
||||
status: ExportRoomIndexTaskStatus;
|
||||
resultFileId: number;
|
||||
resultFileName: string;
|
||||
resultFileUrl: string;
|
||||
};
|
||||
|
@ -579,3 +579,11 @@ export const enum LDAPCertificateProblem {
|
||||
CertUntrustedCa = -2146762478,
|
||||
CertUnrecognizedError = -2146762477,
|
||||
}
|
||||
|
||||
export const enum ExportRoomIndexTaskStatus {
|
||||
Created = 0,
|
||||
Running = 1,
|
||||
Completed = 2,
|
||||
Canceled = 3,
|
||||
Failed = 4,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user