From 0f906156906dd80409a83c9a24f181a1945d3a2d Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 29 Aug 2025 13:49:10 +0200 Subject: [PATCH] feat(backend): Verbesserung der Sprachwertinitialisierung in initializeTypes.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sicherstellung, dass die Sprachwerte für Deutsch und Englisch existieren, und Erstellung fehlender Werte. - Aktualisierung der Logik zur Ermittlung der Sprach-ID, um die neuen Sprachwerte zu berücksichtigen. - Verbesserung der Konsolenausgaben zur besseren Nachverfolgbarkeit bei der Erstellung von Interessen und Fehlern. --- backend/utils/initializeTypes.js | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/backend/utils/initializeTypes.js b/backend/utils/initializeTypes.js index 80cbfa8..e69681f 100644 --- a/backend/utils/initializeTypes.js +++ b/backend/utils/initializeTypes.js @@ -146,10 +146,30 @@ const initializeTypes = async () => { escapade: { adult: true, translation: { value: 'Eskapade', language: 'de' } }, sexuality: { adult: true, translation: { value: 'Sexualität', language: 'de' } } }; + // Stelle sicher, dass die Sprachwerte existieren const languages = await UserParamValue.findAll({where: { value: {[Op.in]: ['de', 'en']} } }); + + // Erstelle fehlende Sprachwerte + const languageValues = ['de', 'en']; + for (const langValue of languageValues) { + if (!languages.find(lang => lang.value === langValue)) { + console.log(`🌐 Erstelle fehlenden Sprachwert: ${langValue}`); + await UserParamValue.create({ + value: langValue, + paramTypeId: 1 // Annahme: Standard-Parametertyp für Sprachen + }); + } + } + + // Lade die aktualisierten Sprachwerte + const updatedLanguages = await UserParamValue.findAll({where: { value: {[Op.in]: ['de', 'en']} } }); + const languageId = (language) => { - const lang = languages.find((lang) => lang.value === language); - return lang ? lang.id : null; + const lang = updatedLanguages.find((lang) => lang.value === language); + if (!lang) { + throw new Error(`Sprachwert '${language}' nicht gefunden in UserParamValue`); + } + return lang.id; }; for (const key of Object.keys(interestsList)) { @@ -162,7 +182,7 @@ const initializeTypes = async () => { if (created) { const langId = languageId('de'); - console.log(item.id, langId, value.translation.value); + console.log(`✅ Erstelle Interesse: ${key} (ID: ${item.id}, Sprache: ${langId}, Übersetzung: ${value.translation.value})`); await InterestTranslation.create({ interestsId: item.id, language: langId, @@ -170,6 +190,7 @@ const initializeTypes = async () => { }); } } catch (error) { + console.error(`❌ Fehler beim Erstellen des Interesses '${key}':`, error.message); throw error; } }