fix: empêcher la duplication massive de fichiers lors de l'import email
- Marquer les emails comme lus immédiatement (markSeen: true) - Vérifier si le fichier existe déjà avant de le stocker (findSourceFileByFileName) - Ajouter un verrou anti-concurrence par utilisateur (runningChecks) - Empêche la création de ~570x doublons par facture
This commit is contained in:
15
server/db.ts
15
server/db.ts
@@ -1218,3 +1218,18 @@ export async function updateWebImportSourceStatus(
|
||||
if (success) update.lastSuccessAt = new Date();
|
||||
await db.update(webImportSources).set(update).where(eq(webImportSources.id, id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a source file with the same fileName already exists for this user
|
||||
* Used to prevent duplicate file storage during email import
|
||||
*/
|
||||
export async function findSourceFileByFileName(userId: number, fileName: string): Promise<any | null> {
|
||||
const result = await db.select()
|
||||
.from(sourceFiles)
|
||||
.where(and(
|
||||
eq(sourceFiles.userId, userId),
|
||||
eq(sourceFiles.fileName, fileName)
|
||||
))
|
||||
.limit(1);
|
||||
return result[0] || null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user