yandex-dostavka 0.0.2 → 0.0.3

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: e2213ba13062f5f38cd365a852a86518df5862cebe540c0dd463c6125ba9ddce
4
- data.tar.gz: e7937b2ddcc9a37430fa58edb73d27a8fbc33807a441375c39e937de0091cf14
3
+ metadata.gz: 1912cde15fc1b20fcf2c6d54e7a900dd6c779780ea3eda3a1ac2db9500a16210
4
+ data.tar.gz: c67f618ab2188764c81c7630da3aa9276bc36f1b0f6409ae67aa623c8090c31c
5
5
  SHA512:
6
- metadata.gz: 8395a673ae7424e46e0ae873e1b439c82dcddba11189d56c1adba47612b4eef7987c5ca895231c64cf2e111eeb2be933839df2f8fb50698626389dd58048bd1b
7
- data.tar.gz: 7ce0e472ec0bfcac920912f5c652a59d408a3c79e7ca6c3f3cf33cc82137450da990d60b44317708b603af10bf374f92428cf16af3575fa8dc5468965000a8f2
6
+ metadata.gz: caf9436b519d38a3a0d0caedd2069dda17a906b7fa490cc36b9009728e71965ddbc94e4e89c3bb5c38b81a6b8fe73f05cdaa4a0fea7dc7cdf10b636bde3e4da2
7
+ data.tar.gz: 696c16f44c4489454001ffd001d0e5a7f6ef9152487b10bc7e1283f165c920d2f9aa0f8025b0ba8b34f85215223067e567ebb1691a55179edf921c3a8c600756
data/README.markdown CHANGED
@@ -8,6 +8,22 @@ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/deliver
8
8
  2. [Использование Ruby](#using_ruby)
9
9
  3. [Debug Logging](#debug_logging)
10
10
  4. [Custom logger](#custom_logger)
11
+ 1. [Подготовка заявки](#part1)
12
+ 1. [Предварительная оценка стоимости доставки](#api_b2b_platform_pricing-calculator_post)
13
+ 2. [Получение интервалов доставки](#api_b2b_platform_offers_info_get)
14
+ 2. [Точки самопривоза и ПВЗ](#part2)
15
+ 1. [Получение идентификатора населённого пункта](#api_b2b_platform_location_detect_post)
16
+ 2. [Получение списка точек самопривоза и ПВЗ](#api_b2b_platform_pickup-points_list_post)
17
+ 3. [Основные запросы](#part3)
18
+ 1. [Создание заявки](#api_b2b_platform_offers_create_post)
19
+ 2. [Подтверждение заявки](#api_b2b_platform_offers_confirm_post)
20
+ 3. [Получение информации о заявке](#api_b2b_platform_request_info_get)
21
+ 4. [Получение информации о заявках во временном интервале](#api_b2b_platform_requests_info_get)
22
+ 5. [История статусов заявки](#api_b2b_platform_request_history_get)
23
+ 6. [Отмена заявки](#api_b2b_platform_request_cancel_post)
24
+ 4. [Ярлыки и акты приема-передачи](#part4)
25
+ 1. [Получение ярлыков](#api_b2b_platform_request_generate-labels_post)
26
+ 2. [Получение актов приёма-передачи для отгрузки](#api_b2b_platform_request_get-handover-act_post)
11
27
 
12
28
  # <a name="install"></a> Установка
13
29
 
@@ -41,7 +57,7 @@ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/deliver
41
57
  Сначала создайте экземпляр объекта `YandexDostavka::Request`:
42
58
 
43
59
  ```ruby
44
- dostavka = YandexDostavka::Request.new(token: "***")
60
+ dostavka = YandexDostavka::Request.new(token: "your_token")
45
61
  ```
46
62
 
47
63
  Вы можете изменять `token`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
@@ -62,7 +78,7 @@ YandexDostavka::Request.token = "your_token"
62
78
  Измените `debug: true` чтобы включить логирование в STDOUT.
63
79
 
64
80
  ```ruby
65
- dostavka = YandexDostavka::Request.new(token: "***", debug: true)
81
+ dostavka = YandexDostavka::Request.new(token: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE", debug: true)
66
82
  ```
67
83
 
68
84
  ### <a name="custom_logger"></a> Custom logger
@@ -70,7 +86,7 @@ dostavka = YandexDostavka::Request.new(token: "***", debug: true)
70
86
  `Logger.new` используется по умолчанию, но вы можете изменить на свой:
71
87
 
72
88
  ```ruby
73
- dostavka = YandexDostavka::Request.new(token: "***", debug: true, logger: MyLogger.new)
89
+ dostavka = YandexDostavka::Request.new(token: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE", debug: true, logger: MyLogger.new)
74
90
  ```
75
91
 
76
92
  Или:
@@ -79,9 +95,8 @@ dostavka = YandexDostavka::Request.new(token: "***", debug: true, logger: MyLogg
79
95
  YandexDostavka::Request.logger = MyLogger.new
80
96
  ```
81
97
 
82
- # <a name="examples"></a> Примеры
83
-
84
-
98
+ ## <a name="part1"></a> [Подготовка заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1.html)
99
+ ### <a name="api_b2b_platform_pricing-calculator_post"></a> [Предварительная оценка стоимости доставки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1/api_b2b_platform_pricing-calculator_post.html)
85
100
  ```ruby
86
101
  body = {
87
102
  client_price: 10000,
@@ -96,5 +111,159 @@ body = {
96
111
  total_assessed_price: 10000,
97
112
  total_weight: 1000
98
113
  }
99
- YandexDostavka::Request.pricing_calculator.create(body: body)
114
+ response = YandexDostavka::Request.pricing_calculator.create(body: body)
115
+ pricing_total = response.body[:pricing_total]
116
+ #=> "360 RUB"
117
+ ```
118
+ ### <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
+ ```ruby
120
+ params = {
121
+ station_id: "03840f16-3c53-400c-b382-1ecf30e06b64",
122
+ full_address: "Санкт-Петербург, Професора Попова, 38",
123
+ geo_id: 2
124
+ }
125
+ response = YandexDostavka::Request.offers.info.retrieve(params: params)
126
+ ```
127
+ ## <a name="part2"></a> [Точки самопривоза и ПВЗ](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2.html)
128
+ ### <a name="api_b2b_platform_location_detect_post"></a> [Получение идентификатора населённого пункта](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2/api_b2b_platform_location_detect_post.html)
129
+ ```ruby
130
+ body = {
131
+ location: "Санкт-Петербург"
132
+ }
133
+ response = YandexDostavka::Request.location.detect.create(body: body)
134
+ variants = response.body[:variants]
135
+ #=> [{:geo_id=>2, :address=>"Россия, Санкт-Петербург"}]
136
+ ```
137
+ ### <a name="api_b2b_platform_pickup-points_list_post"></a> [Получение списка точек самопривоза и ПВЗ](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2/api_b2b_platform_pickup-points_list_post.html)
138
+ ```ruby
139
+ body = {
140
+ available_for_dropoff: true,
141
+ payment_method: "already_paid",
142
+ type: "pickup_point"
143
+ }
144
+ response = YandexDostavka::Request.pickup_points.list.create(body: body)
145
+ points = response.body[:points]
146
+ # =>
147
+ # [{:id=>"03840f16-3c53-400c-b382-1ecf30e06b64",
148
+ # ...
149
+ ```
150
+ ## <a name="part3"></a> [Основные запросы](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3.html)
151
+ ### <a name="api_b2b_platform_offers_create_post"></a> [Создание заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_offers_create_post.html)
152
+ ```ruby
153
+ body = {
154
+ billing_info: {
155
+ delivery_cost: 10000,
156
+ payment_method: "card_on_receipt"
157
+ },
158
+ destination: {
159
+ custom_location: {
160
+ details: {
161
+ comment: "БЦ Ривер Хаус",
162
+ full_address: "Санкт-Петербург, ул. Академика Павлова, 5",
163
+ room: "601"
164
+ }
165
+ },
166
+ interval: {
167
+ from: DateTime.now.to_i,
168
+ to: DateTime.tomorrow.to_datetime.to_i
169
+ },
170
+ type: "custom_location"
171
+ },
172
+ info: {
173
+ comment: "Позвонить за час",
174
+ operator_request_id: "100023"
175
+ },
176
+ items: [
177
+ {
178
+ article: "55185",
179
+ billing_details: {
180
+ assessed_unit_price: 237900,
181
+ unit_price: 237900
182
+ },
183
+ count: 1,
184
+ name: "Автомобильный держатель Mage Safe Qi для iPhone, магнитный, черный",
185
+ place_barcode: "4680431123446"
186
+ }
187
+ ],
188
+ places: [
189
+ {
190
+ barcode: "4680431123446",
191
+ physical_dims: {
192
+ predefined_volume: 10000,
193
+ weight_gross: 1000
194
+ }
195
+ }
196
+ ],
197
+ recipient_info: {
198
+ email: "recipient@email.com",
199
+ first_name: "Осетров",
200
+ last_name: "Павел",
201
+ partonymic: "Федорович",
202
+ phone: "+7111111111111"
203
+ },
204
+ source: {
205
+ platform_station: {
206
+ platform_id: "03840f16-3c53-400c-b382-1ecf30e06b64"
207
+ }
208
+ }
209
+ }
210
+ response = YandexDostavka::Request.offers("create").create(body: body)
211
+ ```
212
+ ### <a name="api_b2b_platform_offers_confirm_post"></a> [Подтверждение заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_offers_confirm_post.html)
213
+ ```ruby
214
+ body = {
215
+ offer_id: "1"
216
+ }
217
+ response = YandexDostavka::Request.offers.confirm.create(body: body)
218
+ ```
219
+ ### <a name="api_b2b_platform_request_info_get"></a> [Получение информации о заявке](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_info_get.html)
220
+ ```ruby
221
+ response = YandexDostavka::Request.request.info.retrieve(params: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
222
+ ```
223
+ ### <a name="api_b2b_platform_requests_info_get"></a> [Получение информации о заявках во временном интервале](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_requests_info_get.html)
224
+ ```ruby
225
+ params = {
226
+ from: (DateTime.now - 7.day).to_i,
227
+ to: DateTime.now.to_i
228
+ }
229
+ response = YandexDostavka::Request.requests.info.retrieve(params: params)
230
+ ```
231
+ ### <a name="api_b2b_platform_request_history_get"></a> [История статусов заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_history_get.html)
232
+ ```ruby
233
+ response = YandexDostavka::Request.request.history.retrieve(params: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
234
+ ```
235
+ ### <a name="api_b2b_platform_request_cancel_post"></a> [Отмена заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_cancel_post.html)
236
+ ```ruby
237
+ response = YandexDostavka::Request.request.cancel.create(body: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
238
+ ```
239
+ ## <a name="part4"></a> [Ярлыки и акты приема-передачи](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4.html)
240
+ ### <a name="api_b2b_platform_request_generate-labels_post"></a> [Получение ярлыков](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4/api_b2b_platform_request_generate-labels_post.html)
241
+ ```ruby
242
+ body = {
243
+ generate_type: "many",
244
+ request_ids: [
245
+ "873113ce-819a-4a73-b500-dce9dae82299"
246
+ ]
247
+ }
248
+
249
+ ```
250
+ ### <a name="api_b2b_platform_request_get-handover-act_post"></a> [Получение актов приёма-передачи для отгрузки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4/api_b2b_platform_request_get-handover-act_post.html)
251
+ ```ruby
252
+ params = {
253
+ editable_format: true,
254
+ new_requests: true,
255
+ created_since: 1643711508,
256
+ created_until: 1644489108,
257
+ created_since_utc: "2021-10-25T15:00:0.000000Z",
258
+ created_until_utc: "2021-10-25T17:00:0.000000Z",
259
+ request_ids: "873113ce-819a-4a73-b500-dce9dae82299,dbc17cb3-d3de-48e2-9f7f-b4ff23095df7",
260
+ request_code: "my_request_id_123"
261
+ }
262
+ body = {
263
+ request_ids: [
264
+ "873113ce-819a-4a73-b500-dce9dae82299",
265
+ "dbc17cb3-d3de-48e2-9f7f-b4ff23095df7"
266
+ ]
267
+ }
268
+ response = YandexDostavka::Request.request.get_handover_act.create(params: params, body: body)
100
269
  ```
@@ -1,6 +1,5 @@
1
1
  defaults: &defaults
2
2
  API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
3
- YANDEX_DOSTAVKA_TOKEN: "***"
4
3
  production:
5
4
  <<: *defaults
6
5
  API_ENDPOINT: "https://b2b-authproxy.taxi.yandex.net"
@@ -8,5 +7,6 @@ production:
8
7
  development:
9
8
  <<: *defaults
10
9
  API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
10
+ YANDEX_DOSTAVKA_TOKEN: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE"
11
11
  test:
12
12
  <<: *defaults
@@ -1,3 +1,3 @@
1
1
  module YandexDostavka
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
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.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov