|
|
|
@ -427,7 +427,7 @@ export class GroupSyncService {
|
|
|
|
|
|
|
|
|
|
|
|
// Aprender mapping alias→número si vienen ambos
|
|
|
|
// Aprender mapping alias→número si vienen ambos
|
|
|
|
if (rawId && rawJid) {
|
|
|
|
if (rawId && rawJid) {
|
|
|
|
IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants');
|
|
|
|
try { IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); } catch {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (typeof p.isAdmin === 'boolean') {
|
|
|
|
if (typeof p.isAdmin === 'boolean') {
|
|
|
|
@ -443,10 +443,13 @@ export class GroupSyncService {
|
|
|
|
if (!norm) continue;
|
|
|
|
if (!norm) continue;
|
|
|
|
result.push({ userId: norm, isAdmin });
|
|
|
|
result.push({ userId: norm, isAdmin });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const resolved = (() => {
|
|
|
|
let resolved: Array<{ userId: string; isAdmin: boolean }>;
|
|
|
|
|
|
|
|
try {
|
|
|
|
const map = IdentityService.resolveMany(result.map(r => r.userId));
|
|
|
|
const map = IdentityService.resolveMany(result.map(r => r.userId));
|
|
|
|
return result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
|
|
|
|
resolved = result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
|
|
|
|
})();
|
|
|
|
} catch {
|
|
|
|
|
|
|
|
resolved = result;
|
|
|
|
|
|
|
|
}
|
|
|
|
return resolved;
|
|
|
|
return resolved;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// Si no viene en el formato esperado, caemos al plan B
|
|
|
|
// Si no viene en el formato esperado, caemos al plan B
|
|
|
|
@ -512,7 +515,7 @@ export class GroupSyncService {
|
|
|
|
|
|
|
|
|
|
|
|
// Aprender mapping alias→número si vienen ambos
|
|
|
|
// Aprender mapping alias→número si vienen ambos
|
|
|
|
if (rawId && rawJid) {
|
|
|
|
if (rawId && rawJid) {
|
|
|
|
IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants');
|
|
|
|
try { IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); } catch {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (typeof p.isAdmin === 'boolean') {
|
|
|
|
if (typeof p.isAdmin === 'boolean') {
|
|
|
|
@ -529,10 +532,13 @@ export class GroupSyncService {
|
|
|
|
if (!norm) continue;
|
|
|
|
if (!norm) continue;
|
|
|
|
result.push({ userId: norm, isAdmin });
|
|
|
|
result.push({ userId: norm, isAdmin });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const resolved = (() => {
|
|
|
|
let resolved: Array<{ userId: string; isAdmin: boolean }>;
|
|
|
|
|
|
|
|
try {
|
|
|
|
const map = IdentityService.resolveMany(result.map(r => r.userId));
|
|
|
|
const map = IdentityService.resolveMany(result.map(r => r.userId));
|
|
|
|
return result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
|
|
|
|
resolved = result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
|
|
|
|
})();
|
|
|
|
} catch {
|
|
|
|
|
|
|
|
resolved = result;
|
|
|
|
|
|
|
|
}
|
|
|
|
return resolved;
|
|
|
|
return resolved;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|