amocrm-rails 0.0.1 → 0.0.5

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.
data/lib/amocrm-rails.rb CHANGED
@@ -6,19 +6,27 @@ require 'amocrm-rails/response'
6
6
  module AmocrmRails
7
7
  class << self
8
8
  def generate_access_token(client_id=AmocrmRails.client_id, client_secret=AmocrmRails.client_secret, refresh_token=nil, count=0)
9
+ refresh_token ||= AmocrmRails.try(:refresh_token)
9
10
  params = {
10
11
  client_id: client_id,
11
12
  client_secret: client_secret,
12
- grant_type: 'authorization_code',
13
- redirect_uri: AmocrmRails.redirect_uri
14
13
  }
15
14
  if refresh_token.present?
15
+ params[:grant_type] = 'refresh_token'
16
16
  params[:refresh_token] = refresh_token
17
17
  else
18
+ params[:grant_type] = 'authorization_code'
18
19
  params[:code] = AmocrmRails.code
19
20
  end
21
+ params[:redirect_uri] = AmocrmRails.redirect_uri
20
22
  response = Faraday.post(AmocrmRails.url_token, params.to_json, "Content-Type" => "application/json")
21
- if response.status < 200 || response.status > 204
23
+ if AmocrmRails::Request.debug
24
+ logger = AmocrmRails::Request.logger || ::Logger.new(STDOUT)
25
+ logger.info "---generate_access_token---"
26
+ logger.info "params: #{params}"
27
+ logger.info "Responding with #{response.status.inspect} => #{response.body.inspect}"
28
+ end
29
+ if response.status >= 200 && response.status <= 204
22
30
  response_token = JSON.parse(response.body)
23
31
  data = YAML.load_file("config/amocrm_token.yml")
24
32
  response_token.each do |k, v|
@@ -26,7 +34,7 @@ module AmocrmRails
26
34
  AmocrmRails::register k.underscore.to_sym, v
27
35
  end
28
36
  File.open("config/amocrm_token.yml", 'w') { |f| YAML.dump(data, f) }
29
- elsif count < 3
37
+ elsif count < 3 && AmocrmRails.refresh_token.present?
30
38
  AmocrmRails.generate_access_token(client_id, client_secret, AmocrmRails.refresh_token, count+1)
31
39
  end
32
40
  end
@@ -17,6 +17,9 @@ module AmocrmRails
17
17
  if e.response.try(:code) == 401 && first_time
18
18
  AmocrmRails.generate_access_token
19
19
  self.post(params: params, headers: headers, body: body, first_time: false)
20
+ elsif e.response.try(:code) == 429
21
+ sleep(1.second)
22
+ self.post(params: params, headers: headers, body: body, first_time: false)
20
23
  else
21
24
  handle_error(e)
22
25
  end
@@ -35,6 +38,9 @@ module AmocrmRails
35
38
  if e.response.try(:code) == 401 && first_time
36
39
  AmocrmRails.generate_access_token
37
40
  self.patch(params: params, headers: headers, body: body, first_time: false)
41
+ elsif e.response.try(:code) == 429
42
+ sleep(1.second)
43
+ self.patch(params: params, headers: headers, body: body, first_time: false)
38
44
  else
39
45
  handle_error(e)
40
46
  end
@@ -53,6 +59,9 @@ module AmocrmRails
53
59
  if e.response.try(:code) == 401 && first_time
54
60
  AmocrmRails.generate_access_token
55
61
  self.put(params: params, headers: headers, body: body, first_time: false)
62
+ elsif e.response.try(:code) == 429
63
+ sleep(1.second)
64
+ self.put(params: params, headers: headers, body: body, first_time: false)
56
65
  else
57
66
  handle_error(e)
58
67
  end
@@ -71,6 +80,9 @@ module AmocrmRails
71
80
  if e.response.try(:code) == 401 && first_time
72
81
  AmocrmRails.generate_access_token
73
82
  self.get(params: params, headers: headers, first_time: false)
83
+ elsif e.response.try(:code) == 429
84
+ sleep(1.second)
85
+ self.get(params: params, headers: headers, body: body, first_time: false)
74
86
  else
75
87
  handle_error(e)
76
88
  end
@@ -89,6 +101,9 @@ module AmocrmRails
89
101
  if e.response.try(:code) == 401 && first_time
90
102
  AmocrmRails.generate_access_token
91
103
  self.delete(params: params, headers: headers, first_time: false)
104
+ elsif e.response.try(:code) == 429
105
+ sleep(1.second)
106
+ self.delete(params: params, headers: headers, body: body, first_time: false)
92
107
  else
93
108
  handle_error(e)
94
109
  end
@@ -211,7 +226,7 @@ module AmocrmRails
211
226
  end
212
227
 
213
228
  def base_api_url
214
- "#{AmocrmRails.api_endpoint}/api/v2/"
229
+ "#{AmocrmRails.api_endpoint}/api/v4/"
215
230
  end
216
231
  end
217
232
  end
@@ -15,8 +15,8 @@ AmocrmRails.setup do |config|
15
15
  end
16
16
  end
17
17
 
18
- config::Request.timeout = 15
19
- config::Request.open_timeout = 15
18
+ config::Request.timeout = 60
19
+ config::Request.open_timeout = 60
20
20
  config::Request.symbolize_keys = true
21
21
  config::Request.debug = false
22
22
  end
@@ -1,4 +1,4 @@
1
1
  token_type: Bearer
2
2
  expires_in: 86400
3
3
  access_token: '***'
4
- refresh_token: '***'
4
+ refresh_token: ''
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amocrm-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov
@@ -79,5 +79,5 @@ requirements: []
79
79
  rubygems_version: 3.1.4
80
80
  signing_key:
81
81
  specification_version: 4
82
- summary: Amocrm
82
+ summary: Rails wrapper API AmoCrm
83
83
  test_files: []