xporter_on_demand 0.2.2 → 0.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c20b8cf9722f61bfffbfd691aa2fa06bd0323ebae5c68cded27b672439e8ecf3
4
- data.tar.gz: 8477834d81aee2841af45becce03c00062843133cc5d1165cb1561d6937187a3
3
+ metadata.gz: 1dffc5d07f36c9e5c25a536bd69e0bfaab658a08d46d8b605d94061a6e3221e0
4
+ data.tar.gz: f7bb8dc299f7c7eaf7e1295c9352c4d94a93e0191ebce3754d4d92589e45ed18
5
5
  SHA512:
6
- metadata.gz: '09eff785898a410ca8f3092ef5975f6267461f5cd03cf7d6d808972c30fef461b8dd4a35152a04cf5660cd0578ee72eea61f48a792e904edcd06473bfd124ab0'
7
- data.tar.gz: 8cced7c46503b1e04b4b8cd5d11d0ec52f496e96dcf823c34a8cb08d815a5f7e1ec603627b9d594a300a3f4223c76d6bbd730190f7578d0c156e2b63a3673bf6
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
@@ -1,4 +1,5 @@
1
1
  require 'xporter_on_demand/utils'
2
+ require 'active_model'
2
3
  require 'base64'
3
4
 
4
5
  module XporterOnDemand
@@ -18,7 +18,8 @@ module XporterOnDemand
18
18
 
19
19
  def handle_exceptions(response)
20
20
  response_body = JSON.parse(response.body || {})
21
- raise response_body["ExceptionMessage"] if response_body["ExceptionMessage"] && !@dont_raise_exception
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)
@@ -1,3 +1,3 @@
1
1
  module XporterOnDemand
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -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.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-06-06 00:00:00.000000000 Z
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.3
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.