amocrm_api icon indicating copy to clipboard operation
amocrm_api copied to clipboard

Возврат нескольких e-mail или телефонов в случае наличия.

Open alex-msk opened this issue 4 years ago • 6 comments

К Issue #45 .

Если у контакта в CRM несколько E-mail или телефонов одного типа(несколько рабочих e-mail`ов), возвращаться будут несколько.

image
  • Если e-mail / телефон один, будет как и раньше возвращаться строка с этим значением(так работает сейчас)
  • Если e-mail`ов / телефонов несколько, они будут возвращаться в виде массива
  • Если E-mail`ов / телефонов нет, возвращаться будет None

alex-msk avatar Nov 09 '21 17:11 alex-msk

Да думаю это поможет решить проблему, но проблема в том что это может поломать кому-то интеграцию (есть опасения что кто то использует эту библиотеку). Предлагаю что бы этого избежать сделать 2 новых класса для этих филдов по типу

class ContactPhonesField(TextCustomField):
    ...
    
class ContactEmailsField(TextCustomField):
    ...

и хотел еще предложит что бы вместе с телефонами возвращались их енумы ( по типу WORK) может возвращать какойто список namedtuple аля namedtuple('Phone', ['value', 'enum'])

Krukov avatar Nov 12 '21 17:11 Krukov

Да, тоже думал об обратной совместимости. Поправлю. В принципе это решение.

А зачем там ENUM? enum же и без того указан в модели, только он и будет в выдаче.

alex-msk avatar Nov 12 '21 17:11 alex-msk

А я думал с одним енумом 2 значений не бывает ? Сейчас поищу в документации

Krukov avatar Nov 12 '21 18:11 Krukov

все сори - туплю ( у тебя же на картинке все видно) да конечно не надо тогда namedtuple

Krukov avatar Nov 12 '21 18:11 Krukov

Хотя, я вот вижу, что у тебя в соседней ветке лежит изменение. Если я правильно понимаю его суть, то возвращаться будут все телефоны если не указывать enum. Я правильно понимаю? Если да, то возврат enum для таких полей, наверное был бы уместен. Как поступисм?

alex-msk avatar Nov 12 '21 18:11 alex-msk

Вообще кода ты изначально описывал проблему я подумал что енумы разные поэтому и так сделал, но я думаю твое решение правильнее и что если енумы отличаются то должно быть отдельное 'поле' под каждый енум

Вообщем я за твое решение

Krukov avatar Nov 12 '21 19:11 Krukov