laximo — ruby-библиотека для web-сервисов Laximo

Поддержка web-сервисов:

Поддерживаемые версии Ruby

Ruby 1.9.3+

Установка (Rails)

  1. Добавляем в Gemfile строку:gem 'laximo'
  2. В консоли bundle install
  3. Задаем параметры конфигурации в файле config/initializers/laximo.rb: ```ruby Laximo.options.login 'mylogin' # имейте в виду, что такие параметры Laximo.options.password 'mypassword' # должны быть вынесены в переменные окружения

Laximo.options.timeout 10 Laximo.options.debug false


Конфигурация

  • Laximo.options.ssl_key "путь_к_файлу" — путь к открытому ключу ssl-сертификата
  • Laximo.options.ssl_cert "путь_к_файлу" — путь к закрытому ключу ssl-сертификата
  • Laximo.options.ssl_cert true/false — проверять или нет валидность сертификата. В случае самоподписанного сертификата, проверку на валидность необходимо отключить
  • Laximo.options.use_ssl true/false - использовать ssl-соединение или нет
  • Laximo.options.use_login true/false - использовать авторизацию по подписке или нет
  • Laximo.options.login - логин для авторизации по подписке
  • Laximo.options.password - пароль для авторизации по подписке
  • Laximo.options.timeout 30 - таймаут соединения в секундах (по-умочланию, 10)
  • Laximo.options.user_agent "Ваш_юзер_агент" - задание произвольного юзер-агента (по-умолчанию, "LaximoRuby [версия_библиотеки]")
  • 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/)

Методы web-сервиса Laximo.Aftermarket

Данные методы возвращают объект, у которого заданы методы:

  • success? - успешна ли операция
  • error? - есть ли ошибка
  • error - возвращает ошибку или nil, если ошибки не было
  • result - возвращает массив хешей или пустой массив, если ничего не найдено, или если в процессе выполения произошла ошибка.

Методы web-сервиса Laximo.OEM

Данные методы возвращают объект, у которого заданы методы:

  • 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 - функция не поддерживается каталогом
  • SoapGroupIsNotSearchableError - поиск по группе запрещён, в связи с слишком большим количеством входящих в группу узлов
  • Laximo::SoapError - общая ошибка протокола SOAP
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-2018 DansingBytes.ru, под лицензией BSD