diff --git a/src/services/group-sync.ts b/src/services/group-sync.ts index 9eaa2ec..3919159 100644 --- a/src/services/group-sync.ts +++ b/src/services/group-sync.ts @@ -66,28 +66,37 @@ export class GroupSyncService { let added = 0; let updated = 0; - db.transaction(() => { - // First mark all groups as inactive - db.exec('UPDATE groups SET active = FALSE'); + try { + db.transaction(() => { + // First mark all groups as inactive + const inactiveResult = db.exec('UPDATE groups SET active = FALSE'); + console.log('Marked groups inactive:', inactiveResult); - for (const group of groups) { - const existing = db.query('SELECT 1 FROM groups WHERE id = ?').get(group.id); - - if (existing) { - db.exec( - 'UPDATE groups SET name = ?, active = TRUE, last_verified = CURRENT_TIMESTAMP WHERE id = ?', - [group.subject, group.id] - ); - updated++; - } else { - db.exec( - 'INSERT INTO groups (id, community_id, name, active) VALUES (?, ?, ?, TRUE)', - [group.id, env.WHATSAPP_COMMUNITY_ID, group.subject] - ); - added++; + for (const group of groups) { + const existing = db.query('SELECT 1 FROM groups WHERE id = ?').get(group.id); + console.log('Checking group:', group.id, 'exists:', !!existing); + + if (existing) { + const updateResult = db.exec( + 'UPDATE groups SET name = ?, active = TRUE, last_verified = CURRENT_TIMESTAMP WHERE id = ?', + [group.subject, group.id] + ); + console.log('Updated group:', group.id, 'result:', updateResult); + updated++; + } else { + const insertResult = db.exec( + 'INSERT INTO groups (id, community_id, name, active) VALUES (?, ?, ?, TRUE)', + [group.id, env.WHATSAPP_COMMUNITY_ID, group.subject] + ); + console.log('Added group:', group.id, 'result:', insertResult); + added++; + } } - } - }); + }); + } catch (error) { + console.error('Error in upsertGroups:', error); + throw error; + } console.log(`Group sync completed: ${added} added, ${updated} updated`); return { added, updated };