|
|
|
@ -66,39 +66,40 @@ export class GroupSyncService {
|
|
|
|
|
let added = 0;
|
|
|
|
|
let updated = 0;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
db.transaction(() => {
|
|
|
|
|
const transactionResult = db.transaction(() => {
|
|
|
|
|
// First mark all groups as inactive
|
|
|
|
|
const inactiveResult = db.exec('UPDATE groups SET active = FALSE');
|
|
|
|
|
const inactiveResult = db.prepare('UPDATE groups SET active = FALSE').run();
|
|
|
|
|
console.log('Marked groups inactive:', inactiveResult);
|
|
|
|
|
|
|
|
|
|
for (const group of groups) {
|
|
|
|
|
const existing = db.query('SELECT 1 FROM groups WHERE id = ?').get(group.id);
|
|
|
|
|
const existing = db.prepare('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]
|
|
|
|
|
);
|
|
|
|
|
const updateResult = db.prepare(
|
|
|
|
|
'UPDATE groups SET name = ?, active = TRUE, last_verified = CURRENT_TIMESTAMP WHERE id = ?'
|
|
|
|
|
).run(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]
|
|
|
|
|
);
|
|
|
|
|
const insertResult = db.prepare(
|
|
|
|
|
'INSERT INTO groups (id, community_id, name, active) VALUES (?, ?, ?, TRUE)'
|
|
|
|
|
).run(group.id, env.WHATSAPP_COMMUNITY_ID, group.subject);
|
|
|
|
|
console.log('Added group:', group.id, 'result:', insertResult);
|
|
|
|
|
added++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return { added, updated };
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
const result = transactionResult();
|
|
|
|
|
console.log(`Group sync completed: ${result.added} added, ${result.updated} updated`);
|
|
|
|
|
return result;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('Error in upsertGroups:', error);
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(`Group sync completed: ${added} added, ${updated} updated`);
|
|
|
|
|
return { added, updated };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|