improve error handling on upload failures

This commit is contained in:
2023-05-11 08:40:30 +10:00
parent 44c4f16c5c
commit 3ce99b8751

View File

@@ -153,7 +153,6 @@ import {
import { closeDialog } from "../SMDialog"; import { closeDialog } from "../SMDialog";
import { api } from "../../helpers/api"; import { api } from "../../helpers/api";
import { Media, MediaCollection, MediaResponse } from "../../helpers/api.types"; import { Media, MediaCollection, MediaResponse } from "../../helpers/api.types";
import { bytesReadable } from "../../helpers/types";
import { useApplicationStore } from "../../store/ApplicationStore"; import { useApplicationStore } from "../../store/ApplicationStore";
import SMButton from "../SMButton.vue"; import SMButton from "../SMButton.vue";
import SMFormCard from "../SMFormCard.vue"; import SMFormCard from "../SMFormCard.vue";
@@ -342,50 +341,54 @@ const handleClickInsert = async () => {
let timeout = 0; let timeout = 0;
while (mediaProcessed == false) { while (mediaProcessed == false) {
timeout++; timeout++;
if (timeout >= 240) { if (timeout >= 60) {
mediaProcessed = true; mediaProcessed = true;
uploadForm._message = uploadForm._message =
"Timed out processing the file. Please try again later."; "The server is taking longer then expected to process the file.\nOnce the file has been processed, select it from the media browser.";
} } else {
await new Promise((resolve) =>
setTimeout(resolve, 500)
);
try {
let updateResult = await api.get({
url: "/media/{id}",
params: {
id: data.medium.id,
},
});
if (updateResult.data) {
const updateData =
updateResult.data as MediaResponse;
await new Promise((resolve) => if (
setTimeout(resolve, 500) updateData.medium.status == ""
); ) {
try { data.medium = updateData.medium;
let updateResult = await api.get({ mediaProcessed = true;
url: "/media/{id}", } else if (
params: { updateData.medium.status.startsWith(
id: data.medium.id, "Failed"
}, ) == true
}); ) {
if (updateResult.data) { throw "error";
const updateData = } else {
updateResult.data as MediaResponse; progressText.value = `${updateData.medium.status}...`;
}
if (updateData.medium.status == "") {
data.medium = updateData.medium;
mediaProcessed = true;
} else if (
updateData.medium.status.startsWith(
"Failed"
) == true
) {
throw "error";
} else { } else {
progressText.value = `${updateData.medium.status}...`; throw "error";
} }
} else { } catch {
throw "error"; mediaProcessed = true;
uploadForm._message =
"An server error occurred processing the file.";
} }
} catch {
mediaProcessed = true;
uploadForm._message =
"An server error occurred processing the file.";
} }
} }
if (data.medium.status.length == 0) { if (data.medium.status.length == 0) {
closeDialog(data.medium); closeDialog(data.medium);
} else {
return;
} }
} }
} else { } else {