diff --git a/backend/scripts/create-german-for-bisaya-course.js b/backend/scripts/create-german-for-bisaya-course.js index 36a0a89..3c2c4eb 100644 --- a/backend/scripts/create-german-for-bisaya-course.js +++ b/backend/scripts/create-german-for-bisaya-course.js @@ -3,7 +3,7 @@ * Erstellt den Phase-1-Deutschkurs für Bisaya-Lernende. * * Verwendung: - * node backend/scripts/create-german-for-bisaya-course.js + * node backend/scripts/create-german-for-bisaya-course.js [ownerHashedId] */ import crypto from 'crypto'; @@ -56,10 +56,23 @@ async function getOwnerByHashedId(ownerHashedId) { return user; } +async function findDefaultOwner() { + let user = await User.findOne({ where: { username: 'system' } }); + if (!user) { + user = await User.findOne({ where: { username: 'admin' } }); + } + if (!user) { + throw new Error('Weder system- noch admin-Benutzer gefunden'); + } + return user; +} + async function createGermanForBisayaCourse(ownerHashedId) { await sequelize.authenticate(); - const owner = await getOwnerByHashedId(ownerHashedId); + const owner = ownerHashedId + ? await getOwnerByHashedId(ownerHashedId) + : await findDefaultOwner(); const germanLanguageId = await getLanguageId('Deutsch'); const bisayaLanguageId = await getLanguageId('Bisaya'); @@ -131,11 +144,6 @@ async function createGermanForBisayaCourse(ownerHashedId) { if (import.meta.url === `file://${process.argv[1]}`) { const ownerHashedId = process.argv[2]; - if (!ownerHashedId) { - console.error('Verwendung: node backend/scripts/create-german-for-bisaya-course.js '); - process.exit(1); - } - createGermanForBisayaCourse(ownerHashedId) .then(() => process.exit(0)) .catch((error) => { diff --git a/docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md b/docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md index 32933f7..5daaec2 100644 --- a/docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md +++ b/docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md @@ -463,10 +463,12 @@ Die Phasen 1 bis 5 sind jetzt als technische Struktur angelegt: ### Neuer Kurs von Grund auf ```bash -node backend/scripts/create-german-for-bisaya-course.js +node backend/scripts/create-german-for-bisaya-course.js [ownerHashedId] node backend/scripts/create-german-for-bisaya-course-content.js ``` +Ohne `ownerHashedId` nutzt das Skript automatisch zuerst `system`, sonst `admin` als Kursbesitzer. + ### Bestehenden Kurs stufenweise erweitern ```bash