xporter_on_demand 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dffc5d07f36c9e5c25a536bd69e0bfaab658a08d46d8b605d94061a6e3221e0
|
4
|
+
data.tar.gz: f7bb8dc299f7c7eaf7e1295c9352c4d94a93e0191ebce3754d4d92589e45ed18
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc7f60cfc5a80fb115cb44e13959830d9fe6fc6bdb0a5f3aa4a5b783f3db3e68485d89d4931bdea960230e3572b7419d4d22684f6e8b2208b6a8f3fdc22810e9
|
7
|
+
data.tar.gz: f8c8ef81e40ec1e8bc2b9b57d12ad3f00c3c1d80e6fde1fbff2829b13ad428dc9220bb7ead7a66544b10ac911887135c608e16512132c1bf6d5cadf8baa3f308
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module XporterOnDemand
|
2
|
+
module ExceptionFactory
|
3
|
+
def self.generate_exception(response_hash)
|
4
|
+
exception_type = response_hash.delete('ExceptionType')
|
5
|
+
message = response_hash.delete('Message')
|
6
|
+
exception_message = response_hash.delete('ExceptionMessage')
|
7
|
+
inner_exception = response_hash.delete('InnerException')
|
8
|
+
|
9
|
+
unless XporterOnDemand.constants.include? exception_type.to_sym
|
10
|
+
XporterOnDemand.const_set exception_type, Class.new(Error)
|
11
|
+
end
|
12
|
+
|
13
|
+
blob = <<~ERROR
|
14
|
+
#{exception_type}
|
15
|
+
==========
|
16
|
+
Message: #{message}
|
17
|
+
ExceptionMessage: #{exception_message}
|
18
|
+
InnerException: #{inner_exception}
|
19
|
+
==========
|
20
|
+
ERROR
|
21
|
+
|
22
|
+
raise XporterOnDemand.const_get(exception_type).new(blob)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -18,7 +18,8 @@ module XporterOnDemand
|
|
18
18
|
|
19
19
|
def handle_exceptions(response)
|
20
20
|
response_body = JSON.parse(response.body || {})
|
21
|
-
|
21
|
+
|
22
|
+
raise ExceptionFactory.generate_exception(response_body) if response_body["ExceptionMessage"] && !@dont_raise_exception
|
22
23
|
end
|
23
24
|
|
24
25
|
def parameterize(sym)
|
data/lib/xporter_on_demand.rb
CHANGED
@@ -15,10 +15,13 @@ require 'xporter_on_demand/result/base'
|
|
15
15
|
require 'xporter_on_demand/result/result_set'
|
16
16
|
require 'xporter_on_demand/result/serialiser'
|
17
17
|
require 'xporter_on_demand/registration'
|
18
|
+
require 'xporter_on_demand/exception_factory'
|
18
19
|
|
19
20
|
module XporterOnDemand
|
20
21
|
API_PATH = "https://xporter.groupcall.com/api/v1/"
|
21
22
|
STS_PATH = "https://login.groupcall.com/idaas/sts/STS/GetToken"
|
22
23
|
META_KEYS = %w(ChangedRows DbStatus Meta Pagination)
|
23
24
|
REGISTRATION_PATH = "https://manage.groupcall.com/API/XporterOnDemand/SchoolRegister"
|
25
|
+
|
26
|
+
class Error < StandardError; end
|
24
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xporter_on_demand
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Green
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpi
|
@@ -133,6 +133,7 @@ files:
|
|
133
133
|
- lib/xporter_on_demand/api.rb
|
134
134
|
- lib/xporter_on_demand/client.rb
|
135
135
|
- lib/xporter_on_demand/endpoint.rb
|
136
|
+
- lib/xporter_on_demand/exception_factory.rb
|
136
137
|
- lib/xporter_on_demand/factory.rb
|
137
138
|
- lib/xporter_on_demand/registration.rb
|
138
139
|
- lib/xporter_on_demand/result/base.rb
|
@@ -161,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
162
|
- !ruby/object:Gem::Version
|
162
163
|
version: '0'
|
163
164
|
requirements: []
|
164
|
-
rubygems_version: 3.0.
|
165
|
+
rubygems_version: 3.0.4
|
165
166
|
signing_key:
|
166
167
|
specification_version: 4
|
167
168
|
summary: Ruby client for the Xporter on Demand API.
|