Исправление warning и дополнение ошибки не загрузившимися пользователями #231
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Проблема была описана тут #229 и тут #228
Что же касательно ошибки - при обновлении из источника в CRM очень долго получать всю базу клиентов из API для понимания какой уже был загружен а какой нужно обновлять.
Вести отдельную базу уже загруженных в CRM отказ неустойчиво. В связи с этим разработчику - интегратору проще попытаться добавить новых пользователей пакетом с обновлениями по существующим, а в случае ошибки - распарить текст (он вида Customer with externalId=([^ ]+) already exists) в массиве ошибок, взять externalId не добавленных и обновить.
Однако при добавлении клиентов при указании адреса с externalId происходит проверка на существование адреса до существования пользователя и ошибки что пользователь существует нет, но есть ошибка что адрес существует без указания для какого пользователя
Добавления в ErrorResponse.php блока кода делает вывод ошибки таким
Тем не менее я надеюсь в RetailCRM исправят тот факт что существование адреса проверяется ДО существования пользователя выводя текст ошибки что адрес есть у другого пользователя, хотя он есть у того которого пытаемся добавить (даже если разработчик ведет учет добавленных в CRM пользователь в случае сбоя записи он не поймет что пользователь был уже добавлен по ошибке адреса)