survey-gizmo-ruby 6.0.3 → 6.1.0
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 +4 -4
- data/lib/survey-gizmo-ruby.rb +1 -0
- data/lib/survey_gizmo/connection.rb +31 -19
- data/lib/survey_gizmo/faraday_middleware/parse_survey_gizmo.rb +25 -4
- data/lib/survey_gizmo/version.rb +1 -1
- data/survey-gizmo-ruby.gemspec +1 -0
- metadata +16 -3
- data/lib/survey_gizmo/faraday_middleware/pester_survey_gizmo.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9212a1b4d700277db950e43704325fe142193b3
|
4
|
+
data.tar.gz: 5fa9f82cd2349c0bd649e56807ee8378687205c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5731f64d824843664d1dd208fc92bbf1060815d96bf25c545908018b0508167f3f955c3e021f0f6d127c15fd8e5f3321f96643cedd938f4ff25785735172b2b9
|
7
|
+
data.tar.gz: 94874505cc5d2739334cf86bde4805616eb2dd178d865eaf20cba1cf670733f870debee1b38b0ae61225db68f22c5498f677cef48915002b25c70f1b8bb9ce97
|
data/lib/survey-gizmo-ruby.rb
CHANGED
@@ -3,7 +3,21 @@ require 'active_support/core_ext/module/delegation'
|
|
3
3
|
module SurveyGizmo
|
4
4
|
class Connection
|
5
5
|
class << self
|
6
|
-
|
6
|
+
def get(route)
|
7
|
+
Retriable.retriable(retriable_args) { connection.get(route) }
|
8
|
+
end
|
9
|
+
|
10
|
+
def post(route, params)
|
11
|
+
Retriable.retriable(retriable_args) { connection.post(route, params) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def put(route, params)
|
15
|
+
Retriable.retriable(retriable_args) { connection.put(route, params) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def delete(route)
|
19
|
+
Retriable.retriable(retriable_args) { connection.delete(route) }
|
20
|
+
end
|
7
21
|
|
8
22
|
def reset!
|
9
23
|
@connection = nil
|
@@ -12,7 +26,7 @@ module SurveyGizmo
|
|
12
26
|
private
|
13
27
|
|
14
28
|
def connection
|
15
|
-
|
29
|
+
faraday_options = {
|
16
30
|
url: SurveyGizmo.configuration.api_url,
|
17
31
|
params: {
|
18
32
|
api_token: SurveyGizmo.configuration.api_token,
|
@@ -24,31 +38,29 @@ module SurveyGizmo
|
|
24
38
|
}
|
25
39
|
}
|
26
40
|
|
27
|
-
|
28
|
-
|
41
|
+
@connection ||= Faraday.new(faraday_options) do |connection|
|
42
|
+
connection.request :url_encoded
|
43
|
+
|
44
|
+
connection.response :parse_survey_gizmo_data
|
45
|
+
connection.response :json, content_type: /\bjson$/
|
46
|
+
connection.response :logger, SurveyGizmo.configuration.logger, bodies: true if SurveyGizmo.configuration.api_debug
|
47
|
+
|
48
|
+
connection.adapter Faraday.default_adapter
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def retriable_args
|
53
|
+
{
|
29
54
|
interval: SurveyGizmo.configuration.retry_interval,
|
30
|
-
|
55
|
+
tries: SurveyGizmo.configuration.retry_attempts + 1,
|
56
|
+
on: [
|
31
57
|
SurveyGizmo::BadResponseError,
|
32
58
|
SurveyGizmo::RateLimitExceededError,
|
33
59
|
Errno::ETIMEDOUT,
|
34
60
|
Net::ReadTimeout,
|
35
61
|
Faraday::Error::TimeoutError,
|
36
|
-
'Timeout::Error',
|
37
|
-
'Error::TimeoutError'
|
38
62
|
]
|
39
63
|
}
|
40
|
-
|
41
|
-
@connection ||= Faraday.new(options) do |connection|
|
42
|
-
connection.request :retry, retry_options
|
43
|
-
connection.request :url_encoded
|
44
|
-
|
45
|
-
connection.response :parse_survey_gizmo_data
|
46
|
-
connection.response :pester_survey_gizmo
|
47
|
-
connection.response :logger, SurveyGizmo.configuration.logger, bodies: true if SurveyGizmo.configuration.api_debug
|
48
|
-
connection.response :json, content_type: /\bjson$/
|
49
|
-
|
50
|
-
connection.adapter Faraday.default_adapter
|
51
|
-
end
|
52
64
|
end
|
53
65
|
end
|
54
66
|
end
|
@@ -1,14 +1,35 @@
|
|
1
1
|
require 'faraday_middleware/response_middleware'
|
2
2
|
|
3
3
|
module SurveyGizmo
|
4
|
+
class RateLimitExceededError < RuntimeError; end
|
5
|
+
class BadResponseError < RuntimeError; end
|
6
|
+
|
4
7
|
class ParseSurveyGizmo < FaradayMiddleware::ResponseMiddleware
|
5
8
|
Faraday::Response.register_middleware(parse_survey_gizmo_data: self)
|
6
9
|
|
7
|
-
PAGINATION_FIELDS = [
|
8
|
-
|
10
|
+
PAGINATION_FIELDS = [
|
11
|
+
'page',
|
12
|
+
'results_per_page',
|
13
|
+
'total_count',
|
14
|
+
'total_pages'
|
15
|
+
]
|
16
|
+
|
17
|
+
TIME_FIELDS = [
|
18
|
+
'created_on',
|
19
|
+
'datecreated',
|
20
|
+
'datemodified',
|
21
|
+
'datesubmitted',
|
22
|
+
'modified_on'
|
23
|
+
]
|
9
24
|
|
10
|
-
def
|
11
|
-
|
25
|
+
def call(environment)
|
26
|
+
@app.call(environment).on_complete do |response|
|
27
|
+
fail RateLimitExceededError if response.status == 429
|
28
|
+
fail BadResponseError, "Bad response code #{response.status} in #{response.inspect}" unless response.status == 200
|
29
|
+
fail BadResponseError, response.body['message'] unless response.body['result_ok'] && response.body['result_ok'].to_s =~ /^true$/i
|
30
|
+
|
31
|
+
process_response(response)
|
32
|
+
end
|
12
33
|
end
|
13
34
|
|
14
35
|
define_parser do |body|
|
data/lib/survey_gizmo/version.rb
CHANGED
data/survey-gizmo-ruby.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_dependency 'awesome_print', '~> 1'
|
21
21
|
gem.add_dependency 'faraday', '>= 0.9.1', '~> 0.9'
|
22
22
|
gem.add_dependency 'faraday_middleware', '~> 0.9'
|
23
|
+
gem.add_dependency 'retriable', '~> 1.4'
|
23
24
|
gem.add_dependency 'i18n'
|
24
25
|
gem.add_dependency 'virtus', '>= 1.0.0'
|
25
26
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: survey-gizmo-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kabari Hendrick
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-03-
|
14
|
+
date: 2016-03-18 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|
@@ -89,6 +89,20 @@ dependencies:
|
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0.9'
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: retriable
|
94
|
+
requirement: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '1.4'
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '1.4'
|
92
106
|
- !ruby/object:Gem::Dependency
|
93
107
|
name: i18n
|
94
108
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,7 +216,6 @@ files:
|
|
202
216
|
- lib/survey_gizmo/configuration.rb
|
203
217
|
- lib/survey_gizmo/connection.rb
|
204
218
|
- lib/survey_gizmo/faraday_middleware/parse_survey_gizmo.rb
|
205
|
-
- lib/survey_gizmo/faraday_middleware/pester_survey_gizmo.rb
|
206
219
|
- lib/survey_gizmo/logger.rb
|
207
220
|
- lib/survey_gizmo/multilingual_title.rb
|
208
221
|
- lib/survey_gizmo/resource.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module SurveyGizmo
|
2
|
-
class RateLimitExceededError < RuntimeError; end
|
3
|
-
class BadResponseError < RuntimeError; end
|
4
|
-
|
5
|
-
class PesterSurveyGizmoMiddleware < Faraday::Middleware
|
6
|
-
Faraday::Response.register_middleware(pester_survey_gizmo: self)
|
7
|
-
|
8
|
-
def call(environment)
|
9
|
-
@app.call(environment).on_complete do |response|
|
10
|
-
fail RateLimitExceededError if response.status == 429
|
11
|
-
fail BadResponseError, "Bad response code #{response.status} in #{response.inspect}" unless response.status == 200
|
12
|
-
fail BadResponseError, response.body['message'] unless response.body['result_ok'] && response.body['result_ok'].to_s =~ /^true$/i
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|