README.md

    unigo-ruby

    Unisender Go (https://go.unisender.ru) integration gem for Ruby

    Examples of usage

    Installation

    gem install unigo-ruby
    

    Working with API responses

    This library using faraday gem for making HTTP queries along with mashify middleware for post-processing response body. So, you can use extended syntax for accessing response fields.

    Example of work with responses:

    require 'unigo-ruby'
    
    unigo = UniGo::Client.new(
      hostname: 'go1.unisender.ru',
      lang: 'ru',
      api_key: ENV['UNIGO_API_KEY']
    )
    
    response = unigo.get_dns_records("example.com")
    
    puts response.status
    puts response.body.to_h
    puts response.headers
    
    # Access fields as hash keys or as object attributes:
    puts response.body['status']
    puts response.body.status
    

    Passing API key in parameters

    By default authentication sent through X-API-KEY header.

    For passing API key in parameters, use:

    unigo = UniGo::Client.new(
      hostname: 'go1.unisender.ru',
      lang: 'ru',
      api_key: ENV['UNIGO_API_KEY'],
      api_key_in_params: true
    )
    

    Verify webhook callback message

    Will raise UniGo::Client::InvalidCallbackAuth error unless `auth’ field is correct.

    unigo.verify_callback_auth!(params)
    

    Webhook callback helper

    Use it to substitute webhook handler verification and parsing to directly get list of events.

    Will raise UniGo::Client::InvalidCallbackAuth error unless `auth’ field is correct.

    unigo.callback_helper(params) do |events|
      # [
      #   {
      #     'event_name' => 'transactional_email_status',
      #     'event_data' =>
      #      {
      #        'email' => 'recipient.email@example.com',
      #        'status' => 'sent',
      #        'event_time' => '2015-11-30 15:09:42',
      #       ...
      #      }
      #   },
      #   ...
      # ]
    end
    

    Handling API errors

    Library using `raise-error’ middleware for handling error responses.

    Example of work with errors:

    require 'unigo-ruby'
    
    begin
    
      unigo = UniGo::Client.new(
        hostname: 'go1.unisender.ru',
        lang: 'ru',
        api_key: ENV['UNIGO_API_KEY']
      )
    
      response = unigo.get_dns_records("example.com")
    
      puts response.status
      puts response.body.to_h
      puts response.headers
    
    rescue Faraday::Error => e
    
      # Note that exception response has internal format which is a little
      # bit different and body field is not post-processed
    
      puts e.response[:status]
      puts e.response[:body]
      puts e.response[:headers]
    
    end
    

    HTTP timeout configuration

    Pass timeout: <seconds> parameter on creating client, default is 5.

    HTTP logging

    Pass enable_logging: true parameter on creating client to enable logging, default false.

    Testing

    You can run tests through included test task and passing methods for test and data inside YAML config file:

    rake test DOMAIN APIKEY WEBHOOK_URL FROM_EMAIL ./test/CONFIGFILE.yml
    
    Описание

    Unisender Go Ruby Library

    Конвейеры
    0 успешных
    0 с ошибкой