amocrm-rails 0.0.1 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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: []