mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
if image cannot be downloaded, fall back to oringinal url
This commit is contained in:
@@ -39,7 +39,7 @@ export async function paginatedRequest<T extends any[]>(request: {
|
||||
var requestCount = 1;
|
||||
const url = new URL(request.url);
|
||||
url.searchParams.set("per_page", "100");
|
||||
|
||||
|
||||
const { data: firstData, headers: firstHeaders } = await axiosClient.get<T>(
|
||||
url.toString()
|
||||
);
|
||||
@@ -64,5 +64,3 @@ export async function paginatedRequest<T extends any[]>(request: {
|
||||
|
||||
return returnData as T;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import FormData from "form-data";
|
||||
|
||||
export const downloadUrlToTempDirectory = async (
|
||||
sourceUrl: string
|
||||
): Promise<string> => {
|
||||
): Promise<{fileName: string, success: boolean}> => {
|
||||
try {
|
||||
const fileName =
|
||||
path.basename(new URL(sourceUrl).pathname) || `tempfile-${Date.now()}`;
|
||||
@@ -16,10 +16,10 @@ export const downloadUrlToTempDirectory = async (
|
||||
responseType: "arraybuffer",
|
||||
});
|
||||
await fs.writeFile(tempFilePath, response.data);
|
||||
return tempFilePath;
|
||||
return {fileName: tempFilePath, success: true};
|
||||
} catch (error) {
|
||||
console.error("Error downloading or saving the file:", error);
|
||||
throw error;
|
||||
console.log("Error downloading or saving the file:", sourceUrl, error);
|
||||
return {fileName: sourceUrl, success: false};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -93,6 +93,7 @@ export const uploadToCanvasPart2 = async ({
|
||||
const redirectResponse = await axiosClient.get(redirectUrl);
|
||||
console.log("redirect response", redirectResponse.data);
|
||||
}
|
||||
// console.log("returning from part 2", JSON.stringify(response.data));
|
||||
return response.data.url;
|
||||
} catch (error) {
|
||||
console.error("Error uploading file to Canvas part 2:", error);
|
||||
|
||||
@@ -18,9 +18,14 @@ export const canvasFileRouter = router({
|
||||
})
|
||||
)
|
||||
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
|
||||
const localFile = sourceUrl.startsWith("/")
|
||||
? fileStorageLocation + sourceUrl
|
||||
const { fileName: localFile, success } = sourceUrl.startsWith("/")
|
||||
? { fileName: fileStorageLocation + sourceUrl, success: true }
|
||||
: await downloadUrlToTempDirectory(sourceUrl);
|
||||
|
||||
if (!success) {
|
||||
console.log("could not download file, returning sourceUrl", sourceUrl);
|
||||
return sourceUrl;
|
||||
}
|
||||
console.log("local temp file", localFile);
|
||||
const { upload_url, upload_params } = await uploadToCanvasPart1(
|
||||
localFile,
|
||||
@@ -32,7 +37,7 @@ export const canvasFileRouter = router({
|
||||
upload_url,
|
||||
upload_params,
|
||||
});
|
||||
console.log("canvas url done");
|
||||
console.log("canvas url done", canvasUrl);
|
||||
return canvasUrl;
|
||||
}),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user