td-client 0.8.81 → 0.8.82
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/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
|