~aleteoryx/muditaos

2ac019017e63d09f9a8bc72baa853b731af9f8bd — Piotr Tański 4 years ago 90bc8a7
[EGD-7993] Fixed contacts matching algorithm

number.isValid() always returns false if there is no national prefix.
1 files changed, 4 insertions(+), 3 deletions(-)

M module-db/Interface/ContactRecord.cpp
M module-db/Interface/ContactRecord.cpp => module-db/Interface/ContactRecord.cpp +4 -3
@@ 1159,10 1159,11 @@ auto ContactRecordInterface::buildNumberMatcher(unsigned int maxPageSize)
{
    return utils::NumberHolderMatcher<std::vector, ContactNumberHolder>(
        [this](const utils::PhoneNumber &number, auto offset, auto limit) {
            auto numbers = !number.get().empty() ? contactDB->number.getLimitOffset(number.get(), offset, limit)
                                                 : contactDB->number.getLimitOffset(offset, limit);

            std::vector<ContactNumberHolder> contactNumberHolders;
            contactNumberHolders.reserve(limit);
            auto numbers = number.isValid() ? contactDB->number.getLimitOffset(number.get(), offset, limit)
                                            : contactDB->number.getLimitOffset(offset, limit);
            contactNumberHolders.reserve(numbers.size());
            std::move(numbers.begin(), numbers.end(), std::back_inserter(contactNumberHolders));
            return contactNumberHolders;
        },