ozon-logistics 0.0.2 → 0.0.6

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: 8f4ea93391ed9353bca0813697688ce7f4e1e40124be5da8db39408ba9eb3e2d
4
- data.tar.gz: 63acc74e32219a54c561054ee5d0a07885e2345607cb5c0a8c7dcd58b176e778
3
+ metadata.gz: 435947ecbb9b47558a5610a41123d5b075a2120d6b68bf869ab3b53117685def
4
+ data.tar.gz: fc432a84ae37d456622f62e9e7095834ad07a1fb7719a9ea16b62365cf99d076
5
5
  SHA512:
6
- metadata.gz: 23a5ec4d76dbc0fedd5e8206c2c12f13b2732c17963d926484972363d716e04f9355747a0f583cee378dc3403ebb9bee8a31e8cd6acfd08b50641208dd4ab14f
7
- data.tar.gz: a22b9a34526d59c6c3105c835caefcf4c61a6cae5e32c20d57ea6821d01adafebd5430784f7ee696d00de9eb44e30280ef2377c460628515350aa522d7d6c235
6
+ metadata.gz: 64f7a27b9ab6e5ecccbb9c3047b01d95ddaf2896a75898f19dc08b602cf46b92f22b54c2c33519eca364ea2b8ac298dc6aad1f6735a39dd82ed295ebb68f2ed7
7
+ data.tar.gz: 6935d1def31c667bc04d999e55c6811ed7fd3b00a5ca2c4cefddd4908455bd9cbf5c63d4bb7d6abf237d89952abc271a64a12b2e5af92a9e69b17bdffa0a0894
data/README.markdown CHANGED
@@ -16,7 +16,7 @@ API wrapper для Ozon.Logistics [API](https://api-stg.ozonru.me/principal-inte
16
16
 
17
17
  Затем:
18
18
 
19
- rails g ozon-logistics:install
19
+ rails g ozon_logistics:install
20
20
 
21
21
  ## Требования
22
22
 
@@ -304,4 +304,23 @@ params = {
304
304
  }
305
305
  response = OzonLogistics::Request.tracking.article.retrieve(params: params)
306
306
  article = response.body
307
+ ```
308
+
309
+ ### DropOff
310
+
311
+ #### Метод создания завки на отгрузк
312
+ ```ruby
313
+ body = {
314
+ "orderIds": [
315
+ 0
316
+ ]
317
+ }
318
+ response = OzonLogistics::Request.dropoff.create(body: body).body
319
+ drop_off_id = response[:id]
320
+ ```
321
+
322
+ #### Метод для для получения акта по ID заявки на отгрузку
323
+ ```ruby
324
+ response = OzonLogistics::Request.dropoff(drop_off_id).act
325
+ p response.body
307
326
  ```
@@ -4,14 +4,14 @@ OzonLogistics.setup do |config|
4
4
  if File.exist?('config/ozon_logistics.yml')
5
5
  processed = YAML.load_file('config/ozon_logistics.yml')[Rails.env]
6
6
 
7
+ processed.each do |k, v|
8
+ config::register k.underscore.to_sym, v
9
+ end
10
+
7
11
  config::Request.access_token = ENV['OZON_LOGISTICS_ACCESS_TOKEN'] || OzonLogistics.generate_access_token.try(:dig, "access_token")
8
12
  config::Request.timeout = 15
9
13
  config::Request.open_timeout = 15
10
14
  config::Request.symbolize_keys = true
11
15
  config::Request.debug = false
12
-
13
- processed.each do |k, v|
14
- config::register k.underscore.to_sym, v
15
- end
16
16
  end
17
17
  end
@@ -6,7 +6,6 @@ require 'ozon-logistics/response'
6
6
 
7
7
  module OzonLogistics
8
8
  class << self
9
-
10
9
  def generate_access_token(client_id=OzonLogistics.client_id, client_secret=OzonLogistics.client_secret, grant_type=OzonLogistics.grant_type)
11
10
  response = Faraday.post(OzonLogistics.url_token, "grant_type=#{grant_type}&client_id=#{client_id}&client_secret=#{client_secret}")
12
11
  JSON.parse(response.body)
@@ -5,7 +5,7 @@ module OzonLogistics
5
5
  @request_builder = builder
6
6
  end
7
7
 
8
- def post(params: nil, headers: nil, body: {})
8
+ def post(params: nil, headers: nil, body: {}, first_time: true)
9
9
  validate_access_token
10
10
 
11
11
  begin
@@ -14,11 +14,16 @@ module OzonLogistics
14
14
  end
15
15
  parse_response(response)
16
16
  rescue => e
17
- handle_error(e)
17
+ if e.response.try(:code) == 401 && first_time
18
+ OzonLogistics::Request.access_token = OzonLogistics.generate_access_token.try(:dig, "access_token")
19
+ self.post(params: params, headers: headers, body: body, first_time: false)
20
+ else
21
+ handle_error(e)
22
+ end
18
23
  end
19
24
  end
20
25
 
21
- def patch(params: nil, headers: nil, body: {})
26
+ def patch(params: nil, headers: nil, body: {}, first_time: true)
22
27
  validate_access_token
23
28
 
24
29
  begin
@@ -28,11 +33,16 @@ module OzonLogistics
28
33
  end
29
34
  parse_response(response)
30
35
  rescue => e
31
- handle_error(e)
36
+ if e.response.try(:code) == 401 && first_time
37
+ OzonLogistics::Request.access_token = OzonLogistics.generate_access_token.try(:dig, "access_token")
38
+ self.patch(params: params, headers: headers, body: body, first_time: false)
39
+ else
40
+ handle_error(e)
41
+ end
32
42
  end
33
43
  end
34
44
 
35
- def put(params: nil, headers: nil, body: {})
45
+ def put(params: nil, headers: nil, body: {}, first_time: true)
36
46
  validate_access_token
37
47
 
38
48
  begin
@@ -41,11 +51,16 @@ module OzonLogistics
41
51
  end
42
52
  parse_response(response)
43
53
  rescue => e
44
- handle_error(e)
54
+ if e.response.try(:code) == 401 && first_time
55
+ OzonLogistics::Request.access_token = OzonLogistics.generate_access_token.try(:dig, "access_token")
56
+ self.put(params: params, headers: headers, body: body, first_time: false)
57
+ else
58
+ handle_error(e)
59
+ end
45
60
  end
46
61
  end
47
62
 
48
- def get(params: nil, headers: nil)
63
+ def get(params: nil, headers: nil, first_time: true)
49
64
  validate_access_token
50
65
 
51
66
  begin
@@ -54,11 +69,16 @@ module OzonLogistics
54
69
  end
55
70
  parse_response(response)
56
71
  rescue => e
57
- handle_error(e)
72
+ if e.response.try(:code) == 401 && first_time
73
+ OzonLogistics::Request.access_token = OzonLogistics.generate_access_token.try(:dig, "access_token")
74
+ self.get(params: params, headers: headers, first_time: false)
75
+ else
76
+ handle_error(e)
77
+ end
58
78
  end
59
79
  end
60
80
 
61
- def delete(params: nil, headers: nil)
81
+ def delete(params: nil, headers: nil, first_time: true)
62
82
  validate_access_token
63
83
 
64
84
  begin
@@ -67,7 +87,12 @@ module OzonLogistics
67
87
  end
68
88
  parse_response(response)
69
89
  rescue => e
70
- handle_error(e)
90
+ if e.response.try(:code) == 401 && first_time
91
+ OzonLogistics::Request.access_token = OzonLogistics.generate_access_token.try(:dig, "access_token")
92
+ self.delete(params: params, headers: headers, first_time: false)
93
+ else
94
+ handle_error(e)
95
+ end
71
96
  end
72
97
  end
73
98
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ozon-logistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov