basecrm 1.3.1 → 1.3.2
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/basecrm/middlewares/raise_error.rb +6 -4
- data/lib/basecrm/version.rb +1 -1
- data/spec/middlewares/raise_error_spec.rb +48 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9b11989ce99c253d1924a4cf9994e941d28c003d2f4af414224bc0b05990b82
|
4
|
+
data.tar.gz: 129afc0658fb9f5320fef56bc3f243651e4725ce485a94976c22b3c4c5f0c1f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5330a0039bced2ce1aca5bbb078f8698e495737a41d14a63682638d7cddf4633c9d290cd402ff8e03a34fbffce4c758d0f768bbb1c870fa54d23f6253808eaf8
|
7
|
+
data.tar.gz: d2bfcdf4ad1868f75bf24ca628c7cf2739391730f99173de9e8068932dec3b6420327e7413fc4a7238b559d043e88f6369ef64573d2e5c778135b650ee0ef0b0
|
@@ -8,9 +8,6 @@ module BaseCRM
|
|
8
8
|
|
9
9
|
content_type = env[:response_headers]['content-type']
|
10
10
|
|
11
|
-
unless content_type.include?('json')
|
12
|
-
raise "status=#{status} error=Unknown error occurred."
|
13
|
-
end
|
14
11
|
|
15
12
|
error_klass = case status
|
16
13
|
when 422 then BaseCRM::ResourceError
|
@@ -18,7 +15,12 @@ module BaseCRM
|
|
18
15
|
when 500...600 then BaseCRM::ServerError
|
19
16
|
end
|
20
17
|
|
21
|
-
|
18
|
+
if !content_type.nil? && content_type.include?('json')
|
19
|
+
raise errors_collection(env, error_klass)
|
20
|
+
else
|
21
|
+
error = {:error=>{:code=>status, :message=>"Unknown error occurred."}, :meta=>{}}
|
22
|
+
raise error_klass.new(error)
|
23
|
+
end
|
22
24
|
end
|
23
25
|
|
24
26
|
def errors_collection(env, error_klass)
|
data/lib/basecrm/version.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe BaseCRM::Middlewares::RaiseError do
|
4
|
+
before { @raise_error = BaseCRM::Middlewares::RaiseError.new }
|
5
|
+
|
6
|
+
describe :on_complete do
|
7
|
+
|
8
|
+
it "returns nil when code 200..300" do
|
9
|
+
expect { @raise_error.on_complete({:status => 204}) }.not_to raise_error
|
10
|
+
end
|
11
|
+
|
12
|
+
it "raises ResourceError when code 422 and no content type" do
|
13
|
+
expect { @raise_error.on_complete({:status => 422, :response_headers => {}}) }
|
14
|
+
.to raise_error do |error|
|
15
|
+
expect(error).to be_a(BaseCRM::ResourceError)
|
16
|
+
expect(error.code).to eql(422)
|
17
|
+
expect(error.message).to eql("Unknown error occurred.")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it "raises RequestError when code 400..500 and no content type" do
|
22
|
+
expect { @raise_error.on_complete({:status => 400, :response_headers => {}}) }
|
23
|
+
.to raise_error do |error|
|
24
|
+
expect(error).to be_a(BaseCRM::RequestError)
|
25
|
+
expect(error.code).to eql(400)
|
26
|
+
expect(error.message).to eql("Unknown error occurred.")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "raises ServerError when code 500..600 and no content type" do
|
31
|
+
expect { @raise_error.on_complete({:status => 500, :response_headers => {}}) }
|
32
|
+
.to raise_error do |error|
|
33
|
+
expect(error).to be_a(BaseCRM::ServerError)
|
34
|
+
expect(error.code).to eql(500)
|
35
|
+
expect(error.message).to eql("Unknown error occurred.")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "raises ResourceError when code 422 and XML (not supported) content type" do
|
40
|
+
expect { @raise_error.on_complete({:status => 422, :response_headers => {'content-type' => "application/xml"}}) }
|
41
|
+
.to raise_error do |error|
|
42
|
+
expect(error).to be_a(BaseCRM::ResourceError)
|
43
|
+
expect(error.code).to eql(422)
|
44
|
+
expect(error.message).to eql("Unknown error occurred.")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basecrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BaseCRM developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- spec/factories/source.rb
|
194
194
|
- spec/factories/tag.rb
|
195
195
|
- spec/factories/task.rb
|
196
|
+
- spec/middlewares/raise_error_spec.rb
|
196
197
|
- spec/models/sync_meta_spec.rb
|
197
198
|
- spec/services/accounts_service_spec.rb
|
198
199
|
- spec/services/associated_contacts_service_spec.rb
|
@@ -243,6 +244,7 @@ specification_version: 4
|
|
243
244
|
summary: BaseCRM Official API V2 library client for ruby
|
244
245
|
test_files:
|
245
246
|
- spec/spec_helper.rb
|
247
|
+
- spec/middlewares/raise_error_spec.rb
|
246
248
|
- spec/utils/coercion_spec.rb
|
247
249
|
- spec/utils/coercion.rb
|
248
250
|
- spec/models/sync_meta_spec.rb
|