mesilov / bitrix24-php-sdk

A powerful PHP library for the Bitrix24 REST API
MIT License
409 stars 161 forks source link

Enhance Duplicates #370

Closed badigit closed 2 months ago

badigit commented 8 months ago
  1. При использовании методов findByPhone\findByEmail - нужно обязательно передавать EntityType или null если мы явно планируем искать по всем видам сущностей. В прошлой версии не требовало явно указывать. имхо так правильнее - чтобы явно было понятно какой результат будет в итоге.

  2. Оставил существующие методы "под контакты" для обратной совместимости hasDuplicateContacts hasOneContact getContactsId

Но в принципе со всеми сущностями можно работать через hasDuplicates hasOne getEntityIds

Для единообразия - можно конечно для каждой сущности по 3 метода дописать.. но не знаю нужно ли

  1. Общий смысл доработок:
    • Поддержка всех видов сущностей
    • Поддержка расширенной работы с результатами. Несмотря что методы вроде как предназначены для поисков дубликатов, по факту это единственные методы которые позволяют легко найти любую сущность по контакту-емейлу, не оглядываясь на формат записи номера в Б24. Как следствие метод используются в скриптах обработки лидов, когда нужна проверка "А есть ли у нас уже сущность с такими контактами" Как следствие - нужны способы проверить есть ли сущность, быстро получить ID сущности, а также задать приоритетность поиска. В разных сценариях бывает нужна первая\последняя сущность.

Например стандартная логика для телефонии - поиск по приоритету лид-контакт-компания с возвратом последнего найденного совпадения. В текущем классе это возможно через getMatchIdByPriority с сортировкой desc

badigit commented 8 months ago

По тестам.

  1. Закомментированы тесты для компаний, до появления сервиса по компаниям. Не стал городить через core
  2. Не вкурил как сделать чтобы phpunit в vscode отображал результат теста по каждому кейсу из дата-провайдера в виде отдельной строки теста. Может это только в vscode так, а может я чет не понял)
badigit commented 4 months ago

@mesilov планируется подтянуть доработки в основную ветку?