feat: ensure user existence in getOrCreateUserPreferences

- Added upsert logic to check and create a user if they don't exist before fetching user preferences.
- This prevents duplicates and ensures a default user setup with a temporary password.
This commit is contained in:
Julien Froidefond
2025-10-03 07:39:21 +02:00
parent 10c1f811ce
commit 775788fdb5

View File

@@ -66,6 +66,19 @@ class UserPreferencesService {
* Récupère ou crée l'entrée user preferences (avec upsert pour éviter les doublons)
*/
private async getOrCreateUserPreferences(userId: string) {
// S'assurer que l'utilisateur existe d'abord (upsert pour éviter les doublons)
await prisma.user.upsert({
where: { id: userId },
update: {}, // Ne rien mettre à jour si existe
create: {
id: userId,
email: `${userId}@towercontrol.local`,
name: 'Default User',
role: 'user',
password: 'default', // Mot de passe temporaire
}
});
// Utiliser upsert pour éviter les conditions de course
const userPrefs = await prisma.userPreferences.upsert({
where: { userId }, // Utiliser userId au lieu de id