fix: enforce retrieval lid and phone for previously unknown contacts (#3702)

* fix: check existance if undefined

* fix: handle missing lid/phone in group participant resolution

* refactor: remove duplicated logic
This commit is contained in:
alechkos 2025-09-06 18:24:19 +03:00 • committed by GitHub
commit d077716315
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1144,4 +1144,26 @@ exports.LoadUtils = () => {
const statuses = window.Store.Status.getModelsArray();
return statuses.map(status => window.WWebJS.getStatusModel(status));
};
window.WWebJS.enforceLidAndPnRetrieval = async (userId) => {
const wid = window.Store.WidFactory.createWid(userId);
const isLid = wid.server === 'lid';
let lid = isLid ? wid : window.Store.LidUtils.getCurrentLid(wid);
let phone = isLid ? window.Store.LidUtils.getPhoneNumber(wid) : wid;
if (!isLid && !lid) {
const queryResult = await window.Store.QueryExist(wid);
if (!queryResult?.wid) return {};
lid = window.Store.LidUtils.getCurrentLid(wid);
}
if (isLid && !phone) {
const queryResult = await window.Store.QueryExist(wid);
if (!queryResult?.wid) return {};
phone = window.Store.LidUtils.getPhoneNumber(wid);
}
return { lid, phone };
};
};