README.md in direct-api-v5-0.0.1 vs README.md in direct-api-v5-0.1.0

- old
+ new

@@ -1,9 +1,16 @@ # Direct::API::V5 -TODO: Write a gem description +[![Gem Version](https://badge.fury.io/rb/direct-api-v5.svg)](https://badge.fury.io/rb/direct-api-v5) +[![Travis CI](https://travis-ci.org/hrom512/direct-api-v5.svg?branch=dev)](https://travis-ci.org/hrom512/direct-api-v5) +[![Code Climate](https://codeclimate.com/github/Hrom512/direct-api-v5/badges/gpa.svg)](https://codeclimate.com/github/Hrom512/direct-api-v5) +[![Test Coverage](https://codeclimate.com/github/Hrom512/direct-api-v5/badges/coverage.svg)](https://codeclimate.com/github/Hrom512/direct-api-v5/coverage) +[![Dependency Status](https://gemnasium.com/hrom512/direct-api-v5.svg)](https://gemnasium.com/hrom512/direct-api-v5) +Ruby wrapper for Yandex Direct API V5. + + ## Installation Add this line to your application's Gemfile: gem 'direct-api-v5' @@ -14,16 +21,133 @@ Or install it yourself as: $ gem install direct-api-v5 + ## Usage -TODO: Write usage instructions here +### Settings +1. Load settings from YML file + + ```ruby + Direct::API::V5.load_settings('config/yandex_direct_api.yml') + ``` + + ```yml + production: + host: api.direct.yandex.com + auth_token: token_string + client_login: login_string + + development: + host: api-sandbox.direct.yandex.com + auth_token: token_string + client_login: login_string + ``` + +2. Configure in block + + ```ruby + Direct::API::V5.configure do |config| + config.host = 'api.direct.yandex.com' + config.auth_token = 'token_string' + config.client_login = 'login_string' + end + ``` + +### Create client + +```ruby +api = Direct::API::V5.client +``` + +You can set client login (if advertising agency) + +```ruby +api = Direct::API::V5.client(client_login: 'login_string') +``` + +Also you can overwrite any default settings: + +```ruby +api = Direct::API::V5.client(host: 'api.direct.yandex.com', auth_token: 'token') +``` + +### Call methods + +Base structure: + +```ruby +api.service_name.method(params) +``` + +For example: + +```ruby +response = api.campaigns.get( + fields: [:id, :name], + criteria: { states: %(ON) }, + page: { limit: 100, offset: 200 } +) + +response.error? +# => false + +response.result +# => +# { +# Campaigns: [ +# { Id: 1, Name: "Campaign 1" }, +# ... +# ] +# } + +response.request_id +# => 123456 + +response.units.spent +# => 10 + +response.units.available +# => 1000 + +response.units.daily_limit +# => 2000 + +response.units.raw +# => 10/1000/2000 +``` + +If API return error: + +```ruby +response.error? +# => true + +response.error.code +# => 54 + +response.error.message +# => "No rights" + +response.error.details +# => "No rights to indicated client" + +response.error.to_h +# => +# { +# code: 54, +# message: "No rights", +# details: "No rights to indicated client" +# } +``` + + ## Contributing -1. Fork it ( https://github.com/[my-github-username]/direct-api-v5/fork ) +1. Fork it ( https://github.com/hrom512/direct-api-v5/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request