mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-18 12:49:29 +02:00
Fix: Correction du bug d'écrasement de notes lors de la création
Problème identifié : - Quand une nouvelle note était créée, elle écrasait la première note existante - La fonction runQuery() dans database-postgres.js retournait rowCount (1) au lieu de l'ID réel - Les requêtes INSERT n'utilisaient pas RETURNING pour récupérer l'ID généré Solution implémentée : 1. Ajout de RETURNING * à toutes les requêtes INSERT dans : - routes/notes.routes.js (notes, todos, images, fichiers, tags) - routes/todos.routes.js (todos globaux) - routes/users.routes.js (utilisateurs) - routes/rss.routes.js (flux RSS, résumés) - routes/settings.routes.js (paramètres) - routes/calendar.routes.js (événements, tokens OAuth) 2. Modification de runQuery() pour : - Retourner la ligne complète si RETURNING est présent - Inclure tous les champs de la ligne insérée (spread operator) - Ajouter des logs détaillés pour le debugging 3. Ajout de logs détaillés pour tracer : - Chaque création d'entité avec ses paramètres - L'ID retourné après insertion - Les erreurs potentielles Impact : - Les nouvelles notes ont maintenant leur vrai ID auto-incrémenté - Plus d'écrasement des notes existantes - Meilleure traçabilité avec les logs détaillés
This commit is contained in:
7 files changed
+68
-15
No files matched your search
@@ -256,8 +256,20 @@ async function runQuery(sql, params = []) {
|
||||
const client = await pool.connect();
|
||||
try {
|
||||
const result = await client.query(sql, params);
|
||||
|
||||
// Si c'est un INSERT/UPDATE avec RETURNING, retourner la ligne complète
|
||||
if (result.rows && result.rows.length > 0) {
|
||||
logger.info(`[runQuery] Requête avec RETURNING - ID: ${result.rows[0].id}, rowCount: ${result.rowCount}`);
|
||||
return {
|
||||
...result.rows[0], // Retourne toutes les colonnes de la première ligne
|
||||
changes: result.rowCount
|
||||
};
|
||||
}
|
||||
|
||||
// Sinon, retourner juste le nombre de lignes affectées
|
||||
logger.info(`[runQuery] Requête sans RETURNING - rowCount: ${result.rowCount}`);
|
||||
return {
|
||||
id: result.rows[0]?.id || result.rowCount,
|
||||
id: result.rowCount,
|
||||
changes: result.rowCount
|
||||
};
|
||||
} catch (error) {
|
||||
|
||||
Reference in new issue
Block a user