yandex-dostavka 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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