add phpmoney as default money type #237
Labels
2.x
issue related with 2.x sdk version
hacktoberfest-accepted
Hacktoberfest
improve DX
developer experience
improvement
scope CRM
application scope CRM
⏳ WIP
work in progress
Milestone
Проблема
деньги в ответах API не являются деньгами, из-за этого в клиентском коде разработчики обращаются с ними достаточно вольно и это является источником ошибок.
Предлагаемое решение
Занести как зависимость https://github.com/moneyphp/money
Ожидания по интеграции в SDK
К обсуждению
если в запросе на изменение переданы объекты PHPMoney (валюта \ деньги), то производить автоматическую сериализацию в структуры данных которые ожидает Б24
Проблемы для пользовательского типа данных
Текущая реализация:
Ожидание:
метод
$сontact->getUserfieldByFieldName('BALANCE')
вернёт объектMoney\Money
Предлагаемое решение для пользовательских типов данных - чтение
Вариант 1 - использовать Serializer Component
При необходимости для поля может быть зарегистрирован денормалайзер имплементирующий интерфейс DenormalizerInterface компонента Serializer Component
Вариант 2 - обычная callback-функция
при получении поля проверяем наличие каллбек-функции зарегистрированной по имени поля, если она есть, то вызываем её.
в обоих случаях ответственность за приведение типа к Битрикс24-совместимому лежит на коде внутри callback-функции
Вопрос с записью оставляем открытым, но скорее всего придётся делать работу в обе стороны
нормализация\денормализация
The text was updated successfully, but these errors were encountered: