laximo — ruby-библиотека для web-сервисов Laximo
Ruby 2.0+
- Добавляем в Gemfile строку
gem 'laximo'
- В консоле
bundle install
- Задаем параметры конфигурации в файле
config/initializers/laximo.rb
:
Laximo.options.login 'mylogin' # имейте в виду, что такие параметры
Laximo.options.password 'mypassword' # должны быть вынесены в переменные окружения
Laximo.options.timeout 10
Laximo.options.debug false
Laximo.options.locale 'ru_RU'
Laximo.options.login
- логин для авторизации по подпискеLaximo.options.password
- пароль для авторизации по подпискеLaximo.options.timeout 30
- таймаут соединения в секундах (по-умочланию, 10)Laximo.options.user_agent "Ваш_юзер_агент"
- задание произвольного юзер-агента (по-умолчанию, "LaximoRuby [версия_библиотеки]")Laximo.options.locale
- локаль (по-умолчанию, 'ru_RU')Laximo.options.debug true/false
- включение/отключение режима отладки (по-умолчанию, выключено)Laximo.options.am_soap_action 'url'
- soap action для web-сервиса Laximo.Aftermarket (по-умолчанию,http://Aftermarket.Kito.ec
)Laximo.options.am_soap_endpoint 'url'
- soap endpoint для web-сервиса Laximo.Aftermarket (по-умолчанию,https://aws.laximo.net/ec.Kito.Aftermarket/services/Catalog.CatalogHttpSoap12Endpoint/
Laximo.options.oem_soap_action 'url'
- soap action для web-сервиса Laximo.OEM (по-умолчанию,http://WebCatalog.Kito.ec
)Laximo.options.oem_soap_endpoint 'url'
- soap endpoint для web-сервиса Laximo.OEM (по-умолчанию,https://ws.laximo.net/ec.Kito.WebCatalog/services/Catalog.CatalogHttpSoap12Endpoint/
)Laximo.options.raise_on_empty_response
- выбрасывать ошибку (Laximo::SoapEmptyResponseError), если ответ сервиса пуст (по-умолчанию, false). К сожалению, у сервиса Лаксима не всегда полные днанные: у узла деталей в ВИН-кодах модет не быть списка деталей. В этом случае, можно отловить эту ошибку и пометить ВИН-номер как неполный для повторного запроса к сервиму Лаксимы.
Методы web-сервиса Laximo.Aftermarket
- Laximo.am.find_oem(oem, brand: nil, options: [], locale: 'ru_RU')
- Laximo.am.find_replacements(detail_id, locale: 'ru_RU')
- Laximo.am.find_detail(detail_id, options: [], locale: 'ru_RU')
- Laximo.am.find_oem_correction(oem, brand: nil, locale: 'ru_RU')
- Laximo.am.manufacturer_info(manufacturer_id, locale: 'ru_RU')
- Laximo.am.list_manufacturer(locale: 'ru_RU')
Данные методы возвращают объект, у которого заданы методы:
success?
- успешна ли операцияerror?
- есть ли ошибкаerror
- возвращает ошибку илиnil
, если ошибки не былоresult
- возвращает массив хешей или пустой массив, если ничего не найдено, или если в процессе выполения произошла ошибка.
Методы web-сервиса Laximo.OEM
- Laximo.oem.list_catalogs(ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_catalog_info(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_vin(vin:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_frame(frame:, frame_no:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_frame_no(frame_no:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle(ident_string:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.get_wizard2(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_wizard_next_step2(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_wizard2(catalog:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.get_vehicle_info(catalog:, vehicle_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.exec_custom_operation(catalog:, operation:, param:, locale: 'ru_RU')
- Laximo.oem.list_units(catalog:, vehicle_id:, ssd:, category_id: -1, localized: true, locale: 'ru_RU')
- Laximo.oem.list_categories(catalog:, vehicle_id:, ssd:, category_id: -10, locale: 'ru_RU')
- Laximo.oem.get_filter_by_unit(catalog:, unit_id:, vehicle_id:, filter:, ssd:, locale: 'ru_RU')
- Laximo.oem.get_unit_info(catalog:, unit_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.list_detail_by_unit(catalog:, unit_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.list_image_map_by_unit(catalog:, unit_id:, ssd:)
- Laximo.oem.get_filter_by_detail(catalog:, unit_id:, detail_id:, filter:, ssd:, locale: 'ru_RU')
- Laximo.oem.list_quick_group(catalog:, vehicle_id, ssd:, locale: 'ru_RU')
- Laximo.oem.list_quick_detail(catalog:, vehicle_id:, quick_group_id:, ssd:, all: 1, localized: true, locale: 'ru_RU')
Комбинированные методы web-сервиса wsdemo.laximo
-
Laximo.oem.vehicle_with_list_categories_and_quick_groups(vehicle_id:, catalog:, ssd:, localized: true, locale: 'ru_RU')
Информация о каталоге, модификации, списке категорий и списке групп быстрого поиска деталей. Если у модификации нет групп быстрого поиска то, Laximo выдает ошибку. -
Laximo.oem.vehicle_with_list_categories(vehicle_id:, catalog:, ssd:, category_id: -1,localized: true, locale: 'ru_RU')
Информация о каталоге, модификации, списке категорий
Данные методы возвращают объект, у которого заданы методы:
success?
- успешна ли операцияerror?
- есть ли ошибкаerror
- возвращает ошибку илиnil
, если ошибки не былоresult
- возвращает массив хешей или пустой массив, если ничего не найдено, или если в процессе выполения произошла ошибка.
res = Laximo.am.find_oem('078100105NX', options: [:crosses, :images])
res.success? # true
res.error? # false
res.error # nil
res.result # [{:detailid=>"31454425", :formattedoem=>"078100105NX", :manufacturer=>"SEAT", ...]
После вызова одного из методов апи, может быть возвращены разного рода ошибки.
Laximo::SslCertificateError
- ваш ssl-сертификат не найден или недействителенLaximo::SoapInvalidParameterError
- неверное значение параметра в запросе к web-сервисуLaximo::SoapCatalogNotExistsError
- каталог не зарегистрирован в системеLaximo::SoapInvalidRequestError
- не верно сформирован запрос к web-сервисуLaximo::SoapUnknownCommandError
- команда не известнаLaximo::SoapAccessDeniedError
- доступ запрещенLaximo::SoapNotSupportedError
- функция не поддерживается каталогомLaximo::SoapGroupIsNotSearchableError
- поиск по группе запрещён, в связи с слишком большим количеством входящих в группу узловLaximo::SoapError
- общая ошибка протокола SOAPLaximo::SoapUnexpectedError
- неизвестная ошибка сервисаLaximo::SoapEmptyResponseError
- пустой ответ сервера
res = Laximo.oem.get_filter_by_detail(catalog: 'AP1211', unit_id: '', detail_id: '', filter: '')
res.success? # false
res.error? # true
res.error # <Laximo::SoapInvalidParameterError: UnitId>
res.result # []
Помимо перечисленного списка ошибок, в ответе могут быть возвращены стандартные ошибки библиотеки Net::HTTP
и интерпретатора Ruby.
Автор: Tyralion
Copyright (c) 2015-2020 DansingBytes.ru, под лицензией BSD