From 80daad27005d4a3f181f4239fd02cb2a851d4339 Mon Sep 17 00:00:00 2001 From: theoleuthardt Date: Wed, 19 Feb 2025 13:55:07 +0100 Subject: [PATCH] fix: no console log and error anymore --- backend/src/routes/libreconvert.route.ts | 102 +++++++++++++---------- frontend/src/app/doc-converter/page.tsx | 5 +- 2 files changed, 60 insertions(+), 47 deletions(-) diff --git a/backend/src/routes/libreconvert.route.ts b/backend/src/routes/libreconvert.route.ts index 0d726ac..8e2ec2e 100644 --- a/backend/src/routes/libreconvert.route.ts +++ b/backend/src/routes/libreconvert.route.ts @@ -6,60 +6,74 @@ import { MultipartValue } from "@fastify/multipart"; const libreConvertAsync = promisify(libre.convert); const mimeTypes: { [key: string]: string } = { - 'pdf': 'application/pdf', - 'html': 'text/html', - 'doc': 'application/msword', - 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'txt': 'text/plain', - 'rtf': 'application/rtf', - 'odt': 'application/vnd.oasis.opendocument.text', - 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xls': 'application/vnd.ms-excel', - 'ods': 'application/vnd.oasis.opendocument.spreadsheet', - 'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'ppt': 'application/vnd.ms-powerpoint', - 'odp': 'application/vnd.oasis.opendocument.presentation' + pdf: "application/pdf", + html: "text/html", + doc: "application/msword", + docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + txt: "text/plain", + rtf: "application/rtf", + odt: "application/vnd.oasis.opendocument.text", + xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + xls: "application/vnd.ms-excel", + ods: "application/vnd.oasis.opendocument.spreadsheet", + pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ppt: "application/vnd.ms-powerpoint", + odp: "application/vnd.oasis.opendocument.presentation", }; export async function libreConvert(app: FastifyInstance) { - app.post("/api/libre-convert", async (request: FastifyRequest, reply: FastifyReply) => { - try { - const parts = request.parts(); + app.post( + "/api/libre-convert", + async (request: FastifyRequest, reply: FastifyReply) => { + try { + const parts = request.parts(); - let fileBuffer: Buffer | null = null; - let outputFileExt = ""; + let fileBuffer: Buffer | null = null; + let outputFileExt = ""; - for await (const part of parts) { - if (part.type === "file") { - fileBuffer = await part.toBuffer(); - } else if (part.fieldname === "outputFormat" && part.type === "field") { - outputFileExt = (part as MultipartValue).value; - console.log("Output format:", outputFileExt); + for await (const part of parts) { + if (part.type === "file") { + fileBuffer = await part.toBuffer(); + } else if ( + part.fieldname === "outputFormat" && + part.type === "field" + ) { + outputFileExt = (part as MultipartValue).value; + } } - } - if (!fileBuffer) { - return reply.status(400).send({ error: "No file uploaded!" }); - } - if (!outputFileExt) { - return reply.status(400).send({ error: "No output format provided!" }); - } - if (!outputFileExt.startsWith(".")) { - outputFileExt = "." + outputFileExt; - } + if (!fileBuffer) { + return reply.status(400).send({ error: "No file uploaded!" }); + } + if (!outputFileExt) { + return reply + .status(400) + .send({ error: "No output format provided!" }); + } + if (!outputFileExt.startsWith(".")) { + outputFileExt = "." + outputFileExt; + } - const format = outputFileExt.substring(1); - const mimeType = mimeTypes[format] || 'application/octet-stream'; + const format = outputFileExt.substring(1); + const mimeType = mimeTypes[format] || "application/octet-stream"; - const convertedBuffer = await libreConvertAsync(fileBuffer, outputFileExt, undefined); + const convertedBuffer = await libreConvertAsync( + fileBuffer, + outputFileExt, + undefined, + ); - reply + reply .header("Content-Type", mimeType) - .header("Content-Disposition", `attachment; filename="converted${outputFileExt}"`) + .header( + "Content-Disposition", + `attachment; filename="converted${outputFileExt}"`, + ) .send(convertedBuffer); - } catch (error) { - console.error("Convert error:", error); - reply.status(500).send({ error: "Error while converting!" }); - } - }); + } catch (error) { + console.error("Convert error:", error); + reply.status(500).send({ error: "Error while converting!" }); + } + }, + ); } diff --git a/frontend/src/app/doc-converter/page.tsx b/frontend/src/app/doc-converter/page.tsx index a09ee3d..a547866 100644 --- a/frontend/src/app/doc-converter/page.tsx +++ b/frontend/src/app/doc-converter/page.tsx @@ -19,6 +19,8 @@ export default function DocConverter() { ); const handleFileChange = (event: React.ChangeEvent) => { + event.preventDefault(); + if (event.target.files && event.target.files.length > 0) { const selectedFile = event.target.files[0]; const fileExtension = selectedFile.name.split(".").pop()?.toLowerCase(); @@ -28,7 +30,6 @@ export default function DocConverter() { ); if (!isSupported) { - console.error("Not supported file uploaded!"); alert("File format not supported!"); event.target.value = ""; return; @@ -70,9 +71,7 @@ export default function DocConverter() { } const blob = await response.blob(); - console.log("Blob:", blob); const url = window.URL.createObjectURL(blob); - console.log("Download URL:", url); setDownloadUrl(url); } catch (error) { console.error("Error while converting:", error);