td-client 0.8.81 → 0.8.82
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/td/client/api.rb +13 -11
- data/lib/td/client/api_error.rb +5 -0
- data/lib/td/client/version.rb +1 -1
- data/spec/td/client/api_error_spec.rb +77 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf42a2c04e997054b7071bd6dc6038738a8857a6
|
4
|
+
data.tar.gz: 360933ff5ee21f22dbb9fce7b5acab14a23006f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab861c2082d0eb19039a928c59e18414f64d31b15303ab4e11144f3290eeb9b29bacbd26ec721d2eb85f25b8935c571c3b0a27ae660885454756fddfae37fbdc
|
7
|
+
data.tar.gz: d562b950d3c9c09d2bf25cef45d2397212a5ea654fc7ca6bf002c403dd9cc76022a0a8db6203f9218ccf40457bfd4fe8c7134592d71875993a5c40181db1e6b4
|
data/lib/td/client/api.rb
CHANGED
@@ -592,18 +592,15 @@ private
|
|
592
592
|
end
|
593
593
|
|
594
594
|
def parse_error_response(res)
|
595
|
-
error = {}
|
596
|
-
|
597
595
|
begin
|
598
|
-
|
599
|
-
if
|
600
|
-
error['message']
|
596
|
+
error = JSON.load(res.body)
|
597
|
+
if error
|
598
|
+
error['message'] = error['error'] unless error['message']
|
601
599
|
else
|
602
|
-
error
|
603
|
-
error['stacktrace'] = js['stacktrace']
|
600
|
+
error = {'message' => res.reason}
|
604
601
|
end
|
605
602
|
rescue JSON::ParserError
|
606
|
-
error
|
603
|
+
error = {'message' => res.body}
|
607
604
|
end
|
608
605
|
|
609
606
|
error
|
@@ -625,6 +622,7 @@ private
|
|
625
622
|
when "404"
|
626
623
|
NotFoundError
|
627
624
|
when "409"
|
625
|
+
message = "#{message}: conflicts_with job:#{error["details"]["conflicts_with"]}" if error["details"] && error["details"]["conflicts_with"]
|
628
626
|
AlreadyExistsError
|
629
627
|
when "401"
|
630
628
|
AuthError
|
@@ -636,11 +634,15 @@ private
|
|
636
634
|
end
|
637
635
|
end
|
638
636
|
|
639
|
-
|
640
|
-
|
637
|
+
exc = nil
|
638
|
+
if error_class.method_defined?(:conflicts_with) && error["details"] && error["details"]["conflicts_with"]
|
639
|
+
exc = error_class.new(message, error['stacktrace'], error["details"]["conflicts_with"])
|
640
|
+
elsif error_class.method_defined?(:api_backtrace)
|
641
|
+
exc = error_class.new(message, error['stacktrace'])
|
641
642
|
else
|
642
|
-
|
643
|
+
exc = error_class.new(message)
|
643
644
|
end
|
645
|
+
raise exc
|
644
646
|
end
|
645
647
|
|
646
648
|
if ''.respond_to?(:encode)
|
data/lib/td/client/api_error.rb
CHANGED
@@ -23,6 +23,11 @@ end
|
|
23
23
|
|
24
24
|
# 409 API errors
|
25
25
|
class AlreadyExistsError < APIError
|
26
|
+
attr_reader :conflicts_with
|
27
|
+
def initialize(error_message = nil, api_backtrace = nil, conflicts_with=nil)
|
28
|
+
super(error_message, api_backtrace)
|
29
|
+
@conflicts_with = conflicts_with
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
# 404 API errors
|
data/lib/td/client/version.rb
CHANGED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe APIError do
|
4
|
+
let (:message){ 'message' }
|
5
|
+
let (:api_backtrace){ double('api_backtrace') }
|
6
|
+
describe 'new' do
|
7
|
+
context '' do
|
8
|
+
it do
|
9
|
+
exc = APIError.new(message, api_backtrace)
|
10
|
+
expect(exc).to be_an(APIError)
|
11
|
+
expect(exc.message).to eq message
|
12
|
+
expect(exc.api_backtrace).to eq api_backtrace
|
13
|
+
end
|
14
|
+
end
|
15
|
+
context 'api_backtrace is ""' do
|
16
|
+
let (:api_backtrace){ '' }
|
17
|
+
it do
|
18
|
+
exc = APIError.new(message, api_backtrace)
|
19
|
+
expect(exc).to be_an(APIError)
|
20
|
+
expect(exc.message).to eq message
|
21
|
+
expect(exc.api_backtrace).to be_nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
context 'api_backtrace is nil' do
|
25
|
+
let (:api_backtrace){ nil }
|
26
|
+
it do
|
27
|
+
exc = APIError.new(message, api_backtrace)
|
28
|
+
expect(exc).to be_an(APIError)
|
29
|
+
expect(exc.message).to eq message
|
30
|
+
expect(exc.api_backtrace).to be_nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe AlreadyExistsError do
|
37
|
+
let (:message){ 'message' }
|
38
|
+
let (:api_backtrace){ double('api_backtrace') }
|
39
|
+
let (:conflicts_with){ '12345' }
|
40
|
+
describe 'new' do
|
41
|
+
context '' do
|
42
|
+
it do
|
43
|
+
exc = AlreadyExistsError.new(message, api_backtrace)
|
44
|
+
expect(exc).to be_an(AlreadyExistsError)
|
45
|
+
expect(exc.message).to eq message
|
46
|
+
expect(exc.api_backtrace).to eq api_backtrace
|
47
|
+
end
|
48
|
+
end
|
49
|
+
context 'api_backtrace is ""' do
|
50
|
+
let (:api_backtrace){ '' }
|
51
|
+
it do
|
52
|
+
exc = AlreadyExistsError.new(message, api_backtrace)
|
53
|
+
expect(exc).to be_an(AlreadyExistsError)
|
54
|
+
expect(exc.message).to eq message
|
55
|
+
expect(exc.api_backtrace).to be_nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
context 'api_backtrace is nil' do
|
59
|
+
let (:api_backtrace){ nil }
|
60
|
+
it do
|
61
|
+
exc = AlreadyExistsError.new(message, api_backtrace)
|
62
|
+
expect(exc).to be_an(AlreadyExistsError)
|
63
|
+
expect(exc.message).to eq message
|
64
|
+
expect(exc.api_backtrace).to be_nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
context 'conflict' do
|
68
|
+
it do
|
69
|
+
exc = AlreadyExistsError.new(message, api_backtrace, conflicts_with)
|
70
|
+
expect(exc).to be_an(AlreadyExistsError)
|
71
|
+
expect(exc.message).to eq message
|
72
|
+
expect(exc.api_backtrace).to eq api_backtrace
|
73
|
+
expect(exc.conflicts_with).to eq conflicts_with
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.82
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Treasure Data, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
@@ -226,6 +226,7 @@ files:
|
|
226
226
|
- spec/spec_helper.rb
|
227
227
|
- spec/td/client/access_control_api_spec.rb
|
228
228
|
- spec/td/client/account_api_spec.rb
|
229
|
+
- spec/td/client/api_error_spec.rb
|
229
230
|
- spec/td/client/api_spec.rb
|
230
231
|
- spec/td/client/api_ssl_connection_spec.rb
|
231
232
|
- spec/td/client/bulk_import_spec.rb
|
@@ -271,6 +272,7 @@ summary: Treasure Data API library for Ruby
|
|
271
272
|
test_files:
|
272
273
|
- spec/td/client/access_control_api_spec.rb
|
273
274
|
- spec/td/client/account_api_spec.rb
|
275
|
+
- spec/td/client/api_error_spec.rb
|
274
276
|
- spec/td/client/api_spec.rb
|
275
277
|
- spec/td/client/api_ssl_connection_spec.rb
|
276
278
|
- spec/td/client/bulk_import_spec.rb
|