yandex-dostavka 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9640f2cfed42f6a1ad69212d4c255ca82482f1e4f98a2d4a0b5b50316aea99d7
4
- data.tar.gz: 3c29642ce1ab73e829030fd3ba4a4a95eabc38b315370b891559c3a409beed35
3
+ metadata.gz: 5600dd5972244fcc3dee75ebfbc2f0a1169e7477fe7ee35475a73fd26f70dfb4
4
+ data.tar.gz: 05c59614e7887daf136c5a9d000d57774912f0d6295c34437cc128b8d58ef164
5
5
  SHA512:
6
- metadata.gz: 51041e29403e882c72a1b4403428e1f8b9b65eeb521ad56472e6ddb3cb841dae25b097b2beee0c4756505a1694c95785d212620e641db6182652fd9bea0bf32f
7
- data.tar.gz: a30bda566869acd6974153480b7571e5504e1e3d5a00e5241cf07cc467b0a125f237fe296328584db802ad63e855675de7aff27f182246e27e4b59631238d683
6
+ metadata.gz: 1fc46de563a4b26f5dd1d23753b277b8ada1b77b5cc33eea46676ed22ad3f0b2c980b626ac9937ce9399204afe90b5f78475c9ad77464d7a418503b5206c001d
7
+ data.tar.gz: 23249925762635335e541bd42751d24a3360761a74ecddaf8ee0c621ba0ba5984ee40d20d97112a2df4d44b82d5738b3df086f353a5e9c135ad3ce461fa7c5a4
data/README.markdown CHANGED
@@ -34,6 +34,7 @@ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/deliver
34
34
  2. В разделе Токен для API нажмите Получить.
35
35
  3. На странице https://oauth.yandex.ru нажмите Разрешить.
36
36
  4. В Кабинете Корпоративного Клиента Яндекс Доставки на вкладке Профиль компании в разделе Токен для API будет отображен ваш OAuth-токен.
37
+ 5. Получите station id у менеджера.
37
38
 
38
39
  ## Ruby
39
40
  $ gem install yandex-dostavka
@@ -118,7 +119,7 @@ pricing_total = response.body[:pricing_total]
118
119
  ### <a name="api_b2b_platform_offers_info_get"></a> [Получение интервалов доставки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1/api_b2b_platform_offers_info_get.html)
119
120
  ```ruby
120
121
  params = {
121
- station_id: "03840f16-3c53-400c-b382-1ecf30e06b64",
122
+ station_id: YandexDostavka.station_id,
122
123
  full_address: "Санкт-Петербург, Професора Попова, 38",
123
124
  geo_id: 2
124
125
  }
@@ -4,9 +4,11 @@ production:
4
4
  <<: *defaults
5
5
  API_ENDPOINT: "https://b2b-authproxy.taxi.yandex.net"
6
6
  YANDEX_DOSTAVKA_TOKEN: "***"
7
+ STATION_ID: "***"
7
8
  development:
8
9
  <<: *defaults
9
10
  API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
10
11
  YANDEX_DOSTAVKA_TOKEN: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE"
12
+ STATION_ID: "7c4054cd-d768-4062-8f8d-d0c9b3c8c4e8"
11
13
  test:
12
14
  <<: *defaults
@@ -5,10 +5,10 @@ module YandexDostavka
5
5
  @request_builder = builder
6
6
  end
7
7
 
8
- def post(params: nil, headers: nil, suffix: nil, body: {})
8
+ def post(params: nil, headers: nil, body: {})
9
9
  validate_api_key
10
10
  begin
11
- response = self.rest_client(suffix).post do |request|
11
+ response = self.rest_client.post do |request|
12
12
  configure_request(request: request, params: params, headers: headers, body: body)
13
13
  end
14
14
  parse_response(response)
@@ -17,7 +17,7 @@ module YandexDostavka
17
17
  end
18
18
  end
19
19
 
20
- def get(params: nil, headers: nil, body: {})
20
+ def get(params: nil, headers: nil, body: nil)
21
21
  validate_api_key
22
22
 
23
23
  begin
@@ -76,9 +76,14 @@ module YandexDostavka
76
76
  error_params[:status_code] = error.response[:status]
77
77
  error_params[:raw_body] = error.response[:body]
78
78
 
79
- parsed_response = MultiJson.load(error.response[:body], symbolize_keys: symbolize_keys)
79
+ io = StringIO.new(error.response[:body])
80
+ gzip_reader = Zlib::GzipReader.new(io, encoding: 'ASCII-8BIT')
81
+ body = gzip_reader.read
82
+
83
+ parsed_response = MultiJson.load(body, symbolize_keys: symbolize_keys)
80
84
 
81
85
  if parsed_response
86
+
82
87
  error_params[:body] = parsed_response
83
88
 
84
89
  title_key = symbolize_keys ? :title : "title"
@@ -110,8 +115,8 @@ module YandexDostavka
110
115
  end
111
116
  end
112
117
 
113
- def rest_client(suffix=nil)
114
- client = Faraday.new("#{self.api_url}#{suffix.present? ? "/#{suffix}": ""}", proxy: self.proxy,
118
+ def rest_client
119
+ client = Faraday.new("#{self.api_url}", proxy: self.proxy,
115
120
  ssl: self.ssl_options) do |faraday|
116
121
  faraday.request :gzip
117
122
  faraday.response :raise_error
@@ -21,7 +21,6 @@ module YandexDostavka
21
21
  def instance_variables_to_s
22
22
  [:title, :detail, :body, :raw_body, :status_code].map do |attr|
23
23
  attr_value = send(attr)
24
-
25
24
  "@#{attr}=#{attr_value.inspect}"
26
25
  end.join(", ")
27
26
  end
@@ -62,7 +62,7 @@ module YandexDostavka
62
62
  reset
63
63
  end
64
64
 
65
- def retrieve(params: nil, headers: nil, body: {})
65
+ def retrieve(params: nil, headers: nil, body: nil)
66
66
  APIRequest.new(builder: self).get(params: params, headers: headers, body: body)
67
67
  ensure
68
68
  reset
@@ -1,3 +1,3 @@
1
1
  module YandexDostavka
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yandex-dostavka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov