Initial commit
This commit is contained in:
258
Docker Backend/generate-9-orders.js
Normal file
258
Docker Backend/generate-9-orders.js
Normal file
@@ -0,0 +1,258 @@
|
||||
/**
|
||||
* Generiert 9 Bestellungen mit allen Font/Format/Umschlag Kombinationen
|
||||
*/
|
||||
|
||||
const http = require('http');
|
||||
|
||||
const API_URL = 'localhost';
|
||||
const API_PORT = 4000;
|
||||
|
||||
// Texte
|
||||
const TEXT_A4 = `Sehr geehrte Damen und Herren,
|
||||
|
||||
hiermit bestätigen wir den Eingang Ihrer Bestellung und bedanken uns herzlich für Ihr Vertrauen.
|
||||
|
||||
Ihre Bestellung wird schnellstmöglich bearbeitet und versendet. Sie erhalten in Kürze eine separate Versandbestätigung mit der Sendungsverfolgungsnummer.
|
||||
|
||||
Sollten Sie Fragen zu Ihrer Bestellung haben, stehen wir Ihnen jederzeit gerne zur Verfügung.
|
||||
|
||||
Wir wünschen Ihnen viel Freude mit Ihren bestellten Produkten und freuen uns auf eine weitere Zusammenarbeit.
|
||||
|
||||
Mit freundlichen Grüßen
|
||||
Ihr Skrift-Team`;
|
||||
|
||||
const TEXT_A6 = `Liebe Grüße!
|
||||
|
||||
Vielen Dank für Ihre Bestellung.
|
||||
|
||||
Wir wünschen Ihnen einen wundervollen Tag!
|
||||
|
||||
Herzlichst,
|
||||
Ihr Skrift-Team`;
|
||||
|
||||
const orders = [
|
||||
// TILDA
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-TILDA-A4',
|
||||
font: 'tilda',
|
||||
format: 'a4',
|
||||
text: TEXT_A4,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-TILDA-A6Q',
|
||||
font: 'tilda',
|
||||
format: 'a6l',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'din_lang',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-TILDA-A6H',
|
||||
font: 'tilda',
|
||||
format: 'a6p',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'custom'
|
||||
},
|
||||
// ALVA
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ALVA-A4',
|
||||
font: 'alva',
|
||||
format: 'a4',
|
||||
text: TEXT_A4,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ALVA-A6Q',
|
||||
font: 'alva',
|
||||
format: 'a6l',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'din_lang',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ALVA-A6H',
|
||||
font: 'alva',
|
||||
format: 'a6p',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'custom'
|
||||
},
|
||||
// ELLIE
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ELLIE-A4',
|
||||
font: 'ellie',
|
||||
format: 'a4',
|
||||
text: TEXT_A4,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ELLIE-A6Q',
|
||||
font: 'ellie',
|
||||
format: 'a6l',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'din_lang',
|
||||
envelopeType: 'recipient'
|
||||
},
|
||||
{
|
||||
orderNumber: 'SK-2026-01-02-ELLIE-A6H',
|
||||
font: 'ellie',
|
||||
format: 'a6p',
|
||||
text: TEXT_A6,
|
||||
envelopeFormat: 'c6',
|
||||
envelopeType: 'custom'
|
||||
}
|
||||
];
|
||||
|
||||
async function generateOrder(order) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const envelope = order.envelopeType === 'recipient'
|
||||
? {
|
||||
index: 0,
|
||||
format: order.envelopeFormat,
|
||||
font: order.font,
|
||||
type: 'recipient',
|
||||
data: {
|
||||
Vorname: 'Max',
|
||||
Nachname: 'Mustermann',
|
||||
Strasse: 'Hauptstraße 1',
|
||||
PLZ: '10115',
|
||||
Ort: 'Berlin'
|
||||
}
|
||||
}
|
||||
: {
|
||||
index: 0,
|
||||
format: order.envelopeFormat,
|
||||
font: order.font,
|
||||
type: 'custom',
|
||||
data: {
|
||||
customText: 'Für unsere geschätzten Kunden'
|
||||
}
|
||||
};
|
||||
|
||||
const requestBody = {
|
||||
orderNumber: order.orderNumber,
|
||||
letters: [
|
||||
{
|
||||
index: 0,
|
||||
format: order.format,
|
||||
font: order.font,
|
||||
text: order.text,
|
||||
placeholders: {}
|
||||
}
|
||||
],
|
||||
envelopes: [envelope]
|
||||
};
|
||||
|
||||
const body = JSON.stringify(requestBody);
|
||||
|
||||
const options = {
|
||||
hostname: API_URL,
|
||||
port: API_PORT,
|
||||
path: '/api/order/generate',
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Content-Length': Buffer.byteLength(body)
|
||||
},
|
||||
timeout: 60000
|
||||
};
|
||||
|
||||
const req = http.request(options, (res) => {
|
||||
let data = '';
|
||||
|
||||
res.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const result = JSON.parse(data);
|
||||
resolve({ order: order.orderNumber, result });
|
||||
} catch (err) {
|
||||
reject({ order: order.orderNumber, error: err.message, data });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', (err) => {
|
||||
reject({ order: order.orderNumber, error: err.message });
|
||||
});
|
||||
|
||||
req.on('timeout', () => {
|
||||
req.destroy();
|
||||
reject({ order: order.orderNumber, error: 'timeout' });
|
||||
});
|
||||
|
||||
req.write(body);
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
async function generateAllOrders() {
|
||||
console.log('╔════════════════════════════════════════════════════════════╗');
|
||||
console.log('║ GENERIERE 9 BESTELLUNGEN ║');
|
||||
console.log('║ 3 Fonts × 3 Formate = 9 Kombinationen ║');
|
||||
console.log('╚════════════════════════════════════════════════════════════╝\n');
|
||||
|
||||
const results = [];
|
||||
|
||||
for (let i = 0; i < orders.length; i++) {
|
||||
const order = orders[i];
|
||||
const num = i + 1;
|
||||
|
||||
console.log(`\n[${num}/9] Generiere: ${order.orderNumber}`);
|
||||
console.log(` Font: ${order.font.toUpperCase()}`);
|
||||
console.log(` Format: ${order.format.toUpperCase()}`);
|
||||
console.log(` Umschlag: ${order.envelopeFormat} (${order.envelopeType})`);
|
||||
|
||||
try {
|
||||
const result = await generateOrder(order);
|
||||
console.log(` ✅ Erfolgreich generiert`);
|
||||
results.push(result);
|
||||
} catch (err) {
|
||||
console.log(` ❌ Fehler: ${err.error || err.message}`);
|
||||
results.push({ order: order.orderNumber, error: err });
|
||||
}
|
||||
|
||||
// Pause zwischen Requests (Rate Limiting)
|
||||
if (i < orders.length - 1) {
|
||||
console.log(` ⏳ Warte 3 Sekunden...`);
|
||||
await new Promise(resolve => setTimeout(resolve, 3000));
|
||||
}
|
||||
}
|
||||
|
||||
console.log('\n\n' + '═'.repeat(60));
|
||||
console.log('ZUSAMMENFASSUNG');
|
||||
console.log('═'.repeat(60));
|
||||
|
||||
const successful = results.filter(r => !r.error);
|
||||
const failed = results.filter(r => r.error);
|
||||
|
||||
console.log(`\n✅ Erfolgreich: ${successful.length}/9`);
|
||||
console.log(`❌ Fehlgeschlagen: ${failed.length}/9`);
|
||||
|
||||
if (successful.length > 0) {
|
||||
console.log('\n📦 Generierte Bestellungen:');
|
||||
successful.forEach(r => {
|
||||
console.log(` - ${r.order}`);
|
||||
});
|
||||
}
|
||||
|
||||
if (failed.length > 0) {
|
||||
console.log('\n❌ Fehlgeschlagene Bestellungen:');
|
||||
failed.forEach(r => {
|
||||
console.log(` - ${r.order}: ${r.error.error || r.error.message}`);
|
||||
});
|
||||
}
|
||||
|
||||
console.log('\n' + '═'.repeat(60));
|
||||
console.log('\n💾 Alle Dateien in: E:\\Dokumente\\05_Skrift\\Frontend_Backend_Konfigurator\\Docker Backend\\output\\');
|
||||
}
|
||||
|
||||
// Start
|
||||
generateAllOrders().catch(console.error);
|
||||
Reference in New Issue
Block a user