yandex-dostavka 0.0.1 → 0.0.4

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: cbb5ab099b6984b9856405b5c43a7116d47495b7c88f08bd22d7adf493dc6996
4
- data.tar.gz: 42ea3078f2cb52aaa2e7eacf8a47480d7f7cd3f60e85ec5f56cfbc4e885c3a16
3
+ metadata.gz: 9640f2cfed42f6a1ad69212d4c255ca82482f1e4f98a2d4a0b5b50316aea99d7
4
+ data.tar.gz: 3c29642ce1ab73e829030fd3ba4a4a95eabc38b315370b891559c3a409beed35
5
5
  SHA512:
6
- metadata.gz: 459ccb9da2c1e49de500eddbf6ae57a4e10c8c8185425f8e82f6f57ebd7b8b3c9d3e65008a163c2b7d7a52ce20fa4ff0ffe0890895cfa1dad80af2af84128a09
7
- data.tar.gz: d94127db0ade19647fbf9f0b4b6bd13997dd2f507579d48e5574380a5c45346802a18bb870964c46f498b124e518f5b193464dfdc0d0e8e9e4a2ddad209a904d
6
+ metadata.gz: 51041e29403e882c72a1b4403428e1f8b9b65eeb521ad56472e6ddb3cb841dae25b097b2beee0c4756505a1694c95785d212620e641db6182652fd9bea0bf32f
7
+ data.tar.gz: a30bda566869acd6974153480b7571e5504e1e3d5a00e5241cf07cc467b0a125f237fe296328584db802ad63e855675de7aff27f182246e27e4b59631238d683
data/README.markdown CHANGED
@@ -1,6 +1,6 @@
1
1
  # Yandex Dostavka API
2
2
 
3
- API wrapper для Yandex Dostavka API
3
+ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/delivery-api/doc/about/intro.html)
4
4
 
5
5
  # Оглавление
6
6
  0. [Установка](#install)
@@ -8,6 +8,22 @@ API wrapper для Yandex Dostavka API
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,10 +57,10 @@ API wrapper для Yandex Dostavka API
41
57
  Сначала создайте экземпляр объекта `YandexDostavka::Request`:
42
58
 
43
59
  ```ruby
44
- dostavka = YandexDostavka::Request.new(api_key: "***")
60
+ dostavka = YandexDostavka::Request.new(token: "your_token")
45
61
  ```
46
62
 
47
- Вы можете изменять `api_key`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
63
+ Вы можете изменять `token`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
48
64
 
49
65
  ```ruby
50
66
  YandexDostavka::Request.timeout = 15
@@ -52,7 +68,7 @@ YandexDostavka::Request.open_timeout = 15
52
68
  YandexDostavka::Request.symbolize_keys = true
53
69
  YandexDostavka::Request.debug = false
54
70
 
55
- YandexDostavka::Request.api_key = "your_api_key"
71
+ YandexDostavka::Request.token = "your_token"
56
72
  ```
57
73
 
58
74
  Либо в файле `config/initializers/yandex_dostavka.rb` для Rails.
@@ -62,7 +78,7 @@ YandexDostavka::Request.api_key = "your_api_key"
62
78
  Измените `debug: true` чтобы включить логирование в STDOUT.
63
79
 
64
80
  ```ruby
65
- dostavka = YandexDostavka::Request.new(api_key: "***", 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(api_key: "***", debug: true)
70
86
  `Logger.new` используется по умолчанию, но вы можете изменить на свой:
71
87
 
72
88
  ```ruby
73
- dostavka = YandexDostavka::Request.new(api_key: "***", 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,4 +95,175 @@ dostavka = YandexDostavka::Request.new(api_key: "***", debug: true, logger: MyLo
79
95
  YandexDostavka::Request.logger = MyLogger.new
80
96
  ```
81
97
 
82
- # <a name="examples"></a> Примеры
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)
100
+ ```ruby
101
+ body = {
102
+ client_price: 10000,
103
+ destination: {
104
+ address: "Санкт-Петербург, ул. Академика Павлова, д. 5"
105
+ },
106
+ payment_method: "already_paid",
107
+ source: {
108
+ address: "Санкт-Петербург, ул. Профессора Попова, д. 38"
109
+ },
110
+ tariff: "time_interval",
111
+ total_assessed_price: 10000,
112
+ total_weight: 1000
113
+ }
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)
269
+ ```
@@ -8,7 +8,7 @@ YandexDostavka.setup do |config|
8
8
  config::register k.underscore.to_sym, v
9
9
  end
10
10
 
11
- config::Request.token ||= ENV['YANDEX_DOSTAVKA_TOKEN']
11
+ config::Request.token = YandexDostavka.token || ENV['YANDEX_DOSTAVKA_TOKEN']
12
12
 
13
13
  config::Request.timeout = 60
14
14
  config::Request.open_timeout = 60
@@ -0,0 +1,12 @@
1
+ defaults: &defaults
2
+ API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
3
+ production:
4
+ <<: *defaults
5
+ API_ENDPOINT: "https://b2b-authproxy.taxi.yandex.net"
6
+ YANDEX_DOSTAVKA_TOKEN: "***"
7
+ development:
8
+ <<: *defaults
9
+ API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
10
+ YANDEX_DOSTAVKA_TOKEN: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE"
11
+ test:
12
+ <<: *defaults
@@ -1,3 +1,3 @@
1
1
  module YandexDostavka
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.4"
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.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov
@@ -74,10 +74,10 @@ extra_rdoc_files: []
74
74
  files:
75
75
  - LICENSE
76
76
  - README.markdown
77
- - lib/generators/yandex-dostavka/install/USAGE
78
- - lib/generators/yandex-dostavka/install/install_generator.rb
79
- - lib/generators/yandex-dostavka/install/templates/yandex_dostavka.rb
80
- - lib/generators/yandex-dostavka/install/templates/yandex_dostavka.yml
77
+ - lib/generators/yandex_dostavka/install/USAGE
78
+ - lib/generators/yandex_dostavka/install/install_generator.rb
79
+ - lib/generators/yandex_dostavka/install/templates/yandex_dostavka.rb
80
+ - lib/generators/yandex_dostavka/install/templates/yandex_dostavka.yml
81
81
  - lib/yandex-dostavka.rb
82
82
  - lib/yandex-dostavka/api_request.rb
83
83
  - lib/yandex-dostavka/error.rb
@@ -1,12 +0,0 @@
1
- defaults: &defaults
2
- API_ENDPOINT: "https://b2b.taxi.tst.yandex.net/"
3
- YANDEX_DOSTAVKA_TOKEN: "***"
4
- production:
5
- <<: *defaults
6
- API_ENDPOINT: "https://b2b-authproxy.taxi.yandex.net"
7
- YANDEX_DOSTAVKA_TOKEN: "***"
8
- development:
9
- <<: *defaults
10
- API_ENDPOINT: "https://b2b.taxi.tst.yandex.net/"
11
- test:
12
- <<: *defaults