gnip_api 1.2.3 → 1.2.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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +2 -2
- data/lib/gnip_api/errors.rb +1 -0
- data/lib/gnip_api/response.rb +32 -4
- data/lib/gnip_api/version.rb +1 -1
- data/spec/gnip_api/response_spec.rb +21 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab4d673ead43c52c3bb125dcd7bd2a5927e578c8
|
4
|
+
data.tar.gz: a0b428bc819c7f56a7b114966e29ca16c6fa45b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98cdb218678d65ce2b92e120f100f5d6512aa3f42a108b86bc4683046b4be22c89ec1fd67673523bc6269f2dcb4aba1cfbe73760bfaf10e6bfce20f9e5e79184
|
7
|
+
data.tar.gz: a759e42169fd8655a30aac8529be5801f7ed56b5a0890cd2a06f0a1009d76a96c1ed92bceda4468287b2d5496b6fcac46ab2829b92b5b39b9e5e5e55aaac3325
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.2.
|
1
|
+
ruby-2.2.10
|
data/Gemfile.lock
CHANGED
data/lib/gnip_api/errors.rb
CHANGED
data/lib/gnip_api/response.rb
CHANGED
@@ -27,11 +27,20 @@ module GnipApi
|
|
27
27
|
def error_message
|
28
28
|
if @body && !@body.empty?
|
29
29
|
parsed = GnipApi::JsonParser.new.parse(@body)
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
if rules_summary? parsed
|
31
|
+
created = parsed["summary"]["created"]
|
32
|
+
failed = parsed["summary"]["not_created"]
|
33
|
+
timstamp = parsed["sent"]
|
34
|
+
log_rule_failures(parsed)
|
35
|
+
return "Invalid rules: created #{created}, failed #{failed} verify and try again"
|
36
|
+
elsif generic_error? parsed
|
37
|
+
message = parsed['error']['message']
|
38
|
+
message += " - TID: #{parsed['error']['transactionId']}" if parsed['error']['transactionId']
|
39
|
+
return message
|
40
|
+
else
|
41
|
+
return "Unknown error"
|
42
|
+
end
|
33
43
|
end
|
34
|
-
return nil
|
35
44
|
end
|
36
45
|
|
37
46
|
def check_for_errors!
|
@@ -49,9 +58,28 @@ module GnipApi
|
|
49
58
|
GnipApi.logger.debug "Request payload -> #{request.payload.inspect}"
|
50
59
|
raise GnipApi::Errors::Adapter::GnipSoftwareError.new error_message if status == 503
|
51
60
|
raise GnipApi::Errors::Adapter::RateLimitError.new error_message if status == 429
|
61
|
+
raise GnipApi::Errors::Adapter::InvalidInput.new(error_message) if status == 422
|
52
62
|
raise GnipApi::Errors::Adapter::RequestError.new("Status #{status} #{error_message}")
|
53
63
|
end
|
54
64
|
end
|
55
65
|
|
66
|
+
private
|
67
|
+
def log_rule_failures data
|
68
|
+
message = "Invalid rules (422):\n"
|
69
|
+
data["detail"].each do |rule|
|
70
|
+
message += "Rule: #{rule['value']}\n"
|
71
|
+
message += "Reason: #{rule['message']}\n\n"
|
72
|
+
end
|
73
|
+
GnipApi.logger.error message
|
74
|
+
end
|
75
|
+
|
76
|
+
def rules_summary? data
|
77
|
+
data.keys.include? "summary"
|
78
|
+
end
|
79
|
+
|
80
|
+
def generic_error? data
|
81
|
+
data.keys.include? "error"
|
82
|
+
end
|
83
|
+
|
56
84
|
end
|
57
85
|
end
|
data/lib/gnip_api/version.rb
CHANGED
@@ -8,6 +8,27 @@ describe GnipApi::Response do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe '#error_message' do
|
11
|
+
context 'when 422 for rules' do
|
12
|
+
let(:request) { GnipApi::Response.new(GnipApi::Request.new, 422, "{\"summary\":{\"created\":0,\"not_created\":1},\"detail\":[{\"rule\":{\"value\":\"keyword\",\"tag\":\"123\"},\"created\":false,\"message\":\"some message\"}],\"sent\":\"2018-07-26T15:25:33.483Z\"}", {}) }
|
13
|
+
it "parses body errors and returns minimal info" do
|
14
|
+
expect(request.error_message).to eq("Invalid rules: created 0, failed 1 verify and try again")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when 422 for everything else' do
|
19
|
+
let(:request) { GnipApi::Response.new(GnipApi::Request.new, 422, "{\"error\":{\"message\":\"Generic error\",\"sent\":\"2018-02-06T16:35:03+00:00\",\"transactionId\":\"000ea40b00c3da1e\"}}", {}) }
|
20
|
+
it "parses body errors and returns message" do
|
21
|
+
expect(request.error_message).to eq("Generic error - TID: 000ea40b00c3da1e")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when 422 with nothing' do
|
26
|
+
let(:request) { GnipApi::Response.new(GnipApi::Request.new, 422, "{\"asd\":\"asd\"}", {}) }
|
27
|
+
it "returns unknown" do
|
28
|
+
expect(request.error_message).to eq("Unknown error")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
11
32
|
context 'when 429' do
|
12
33
|
let(:request) { GnipApi::Response.new(GnipApi::Request.new, 429, "{\"error\":{\"message\":\"Exceeded rate limit\",\"sent\":\"2018-02-06T16:35:03+00:00\",\"transactionId\":\"000ea40b00c3da1e\"}}", {}) }
|
13
34
|
it 'parses the body and returns message' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnip_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rayko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|