format with prettier

This commit is contained in:
oom 2025-02-28 11:43:17 +07:00
parent f7178d212a
commit 3c35c1e552
10 changed files with 540 additions and 466 deletions

View file

@ -1,14 +1,14 @@
import express from 'express'
export const convertTemplateRoute = express.Router();
import {mimeToExtension} from './report-template'
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
import express from "express"
export const convertTemplateRoute = express.Router()
import { mimeToExtension } from "./report-template"
import { LibreOfficeFileConverter } from "libreoffice-file-converter"
/** javascript-obfuscator:disable
* @swagger
* tags:
* name: office-convert
* description: ใช้แปลงไฟล์จากเอกสารที่ libreoffice docx pdf
*/
*/
/** javascript-obfuscator:disable
* @swagger
@ -19,7 +19,7 @@ import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
* parameters:
* - name: report-name
* in: header
* description: ชื่อไฟล์ที่ต้องการหลังแปลง
* description: ชื่อไฟล์ที่ต้องการหลังแปลง
* required: true
* schema:
* type: string
@ -66,49 +66,59 @@ import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
*
*/
convertTemplateRoute.post("/", async function (req, res) {
try {
if (!req.headers['content-type'] ||
!req.headers['accept'] ||
!req.headers['report-name'] ||
req.headers['content-type'] !== "application/octet-stream") {
res.statusCode = 400;
res.statusMessage = 'Require header: content-type(application/octet-stream) accept, report-name';
res.end(res.statusMessage);
console.log(req.headers['content-type'],req.headers['accept'],req.headers['report-name'])
return
}
let outputMediaType = mimeToExtension(req.headers['accept']);
let reportName = req.headers['report-name']
console.log('convert output: ' + outputMediaType);
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
});
//const buffer = await libreOfficeFileConverter.convertBuffer(req.body, outputMediaType);
const buffer = await libreOfficeFileConverter.convert({
buffer:Buffer.from(req.body),
format: outputMediaType,
input: "buffer",
output: "buffer"
})
res.statusCode = 201;
res.setHeader('Content-Type', req.headers['accept']);
res.setHeader('Content-Disposition', `attachment;filename=${reportName}.${outputMediaType}`);
res.setHeader('Content-Length', buffer.length);
res.end(buffer);
} catch (ex) {
if(ex instanceof SyntaxError){
res.statusCode = 400
res.statusMessage = ex.message
res.end(res.statusMessage)
console.error("report-template/convert: ", ex)
}else{
res.statusCode = 500
res.statusMessage = "Internal Server Error during POST report-template/convert"
res.end(res.statusMessage)
console.error("report-template/html: ", ex)
}
try {
if (
!req.headers["content-type"] ||
!req.headers["accept"] ||
!req.headers["report-name"] ||
req.headers["content-type"] !== "application/octet-stream"
) {
res.statusCode = 400
res.statusMessage =
"Require header: content-type(application/octet-stream) accept, report-name"
res.end(res.statusMessage)
console.log(
req.headers["content-type"],
req.headers["accept"],
req.headers["report-name"]
)
return
}
})
let outputMediaType = mimeToExtension(req.headers["accept"])
let reportName = req.headers["report-name"]
console.log("convert output: " + outputMediaType)
const libreOfficeFileConverter = new LibreOfficeFileConverter({
childProcessOptions: {
timeout: 60 * 1000,
},
})
//const buffer = await libreOfficeFileConverter.convertBuffer(req.body, outputMediaType);
const buffer = await libreOfficeFileConverter.convert({
buffer: Buffer.from(req.body),
format: outputMediaType,
input: "buffer",
output: "buffer",
})
res.statusCode = 201
res.setHeader("Content-Type", req.headers["accept"])
res.setHeader(
"Content-Disposition",
`attachment;filename=${reportName}.${outputMediaType}`
)
res.setHeader("Content-Length", buffer.length)
res.end(buffer)
} catch (ex) {
if (ex instanceof SyntaxError) {
res.statusCode = 400
res.statusMessage = ex.message
res.end(res.statusMessage)
console.error("report-template/convert: ", ex)
} else {
res.statusCode = 500
res.statusMessage =
"Internal Server Error during POST report-template/convert"
res.end(res.statusMessage)
console.error("report-template/html: ", ex)
}
}
})