solved timeout error via fetch response
This commit is contained in:
parent
ba9d9e6abb
commit
1d68336a06
9 changed files with 246 additions and 110 deletions
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
// Modules
|
||||
import createReport from 'docx-templates';
|
||||
import fs from 'fs';
|
||||
|
|
@ -7,23 +5,49 @@ import { mkdir } from 'node:fs/promises';
|
|||
import path from 'path';
|
||||
import replaceSpecialCharacters from "replace-special-characters";
|
||||
|
||||
// Components
|
||||
import ObjektkatalogApi from './ObjektkatalogApi';
|
||||
|
||||
////////////////////
|
||||
// Main //
|
||||
////////////////////
|
||||
|
||||
// Fills the docx template.
|
||||
export async function fillTemplate(log, objectData) {
|
||||
// Variables
|
||||
let buffer;
|
||||
let configJson
|
||||
// Create docx document.
|
||||
|
||||
// Create docx document if there was a response.
|
||||
if (objectData.httpStatus === 200) {
|
||||
let documentInfo;
|
||||
try {
|
||||
// Load config file.
|
||||
let ConfigFile = fs.readFileSync('resources/config/config.json')
|
||||
configJson = JSON.parse(ConfigFile)
|
||||
|
||||
// Choose the template for selected document type.
|
||||
switch (objectData.dokumenttyp) {
|
||||
case 'rp':
|
||||
documentInfo = {
|
||||
documentType: 'restaurierungsprotokolle',
|
||||
templateFile: 'rp-template.docx',
|
||||
}
|
||||
break;
|
||||
case 'lbb':
|
||||
documentInfo = {
|
||||
documentType: 'leihgabenbegleitblaetter',
|
||||
templateFile: 'lbb-template.docx',
|
||||
}
|
||||
break;
|
||||
case 'a':
|
||||
documentInfo = {
|
||||
documentType: 'analysen',
|
||||
templateFile: 'a-template.docx',
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Read template.
|
||||
const template = fs.readFileSync('resources/templates/rp-template.docx');
|
||||
const template = fs.readFileSync(path.join('resources/templates/', documentInfo.templateFile));
|
||||
|
||||
// Create report.
|
||||
buffer = await createReport({
|
||||
template,
|
||||
|
|
@ -38,32 +62,40 @@ export async function fillTemplate(log, objectData) {
|
|||
}
|
||||
});
|
||||
} catch (err) {
|
||||
// Set error log.
|
||||
log = {
|
||||
...log,
|
||||
status: 'red',
|
||||
message: 'Konnte Template nicht erstellen: ' + err,
|
||||
tip: 'Ist das Template vorhanden?',
|
||||
};
|
||||
return log
|
||||
}
|
||||
const folderPath = path.join(configJson.rootDir, objectData.inventarnummer);
|
||||
// Create Folder if necessary.
|
||||
|
||||
// Create folder (if necessary).
|
||||
const objectPath = path.join(configJson.rootDir, objectData.inventarnummer);
|
||||
const documentPath = path.join(objectPath, documentInfo.documentType);
|
||||
const temporaryWorkDirPath = path.join(objectPath, 'werkstatt');
|
||||
try {
|
||||
const createDir = await mkdir(folderPath, {recursive: true});
|
||||
const createDocumentPath = await mkdir(documentPath, {recursive: true});
|
||||
const createTemporaryWorkDirPath = await mkdir(temporaryWorkDirPath, {recursive: true});
|
||||
} catch (err) {
|
||||
// Set error log.
|
||||
log = {
|
||||
...log,
|
||||
status: 'red',
|
||||
message: 'Konnte den Pfad nicht erstellen' + err,
|
||||
tip: 'Bestehen Schreibrechte auf dem Ordner?'
|
||||
}
|
||||
return log
|
||||
}
|
||||
// Write document to disk.
|
||||
|
||||
// Write document to disk.
|
||||
if (buffer) {
|
||||
const normCharacterTitle = replaceSpecialCharacters(objectData.titel)
|
||||
const normSpacingTitle = normCharacterTitle.replace(/[^A-Z0-9]+/ig, "_");
|
||||
const filename = objectData.datum + '_' + normSpacingTitle + '.docx'
|
||||
fs.writeFileSync(path.join(folderPath, filename), buffer)
|
||||
fs.writeFileSync(path.join(documentPath, filename), buffer)
|
||||
log = {
|
||||
...log,
|
||||
status: 'green',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue