allscripts_unity_client 3.3.1 → 3.4.0

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
  SHA1:
3
- metadata.gz: 26d2a1e44edd1f0566f998f0d6a0a458be686621
4
- data.tar.gz: 8a8e6d47cdcba9fe7cd5bcf775d40055eca85d13
3
+ metadata.gz: 5b018d1ed24a0f4b028314d344ddda233cdae85e
4
+ data.tar.gz: a50e668f398d71abb9b9c2a634ece8009a97b929
5
5
  SHA512:
6
- metadata.gz: 7caa5e1b1a0e0bc6fd40f5331cc48bbe4b4ba8421d795a873670cacd2742270889b611d5e0604a96ca09a3027324d771043036b18373e762b856af5376de14a6
7
- data.tar.gz: 9115bca3320748180f5c39423763fc75e9c7e45c7032e3ebb45657795d7d899a0aacb51155147e4850afcfada554f0a2bd40ed7f3c502512670837a978adda5c
6
+ metadata.gz: f60b57a172e05271f9c68d9eeb4d9c04e10dbe17d16c9bba85e8e9a91f3435fd290b63d8d8d787a7f827489f0aa2caff61837c985f5e46dbf3451f622312bca4
7
+ data.tar.gz: c2e23be3758cce7f2568476132afafcc1140cea9b9453e225373fb0d4b61f9f383997405ab592a556412cbea4935cfa8816bd0faf137ece71fc51fa2a3652de2
@@ -75,5 +75,15 @@ module AllscriptsUnityClient
75
75
  @end_time = Time.now.utc
76
76
  @timer = @end_time - @start_time
77
77
  end
78
+
79
+ # Initializes a `GetSecurityTokenError` with a default message.
80
+ #
81
+ # @return [GetSecurityTokenError]
82
+ def make_get_security_token_error
83
+ base_unity_url = self.options.base_unity_url.inspect
84
+ error_message = "Could not retrieve security token from #{base_unity_url}"
85
+
86
+ GetSecurityTokenError.new(error_message)
87
+ end
78
88
  end
79
89
  end
@@ -12,7 +12,6 @@ module AllscriptsUnityClient
12
12
  def initialize(options)
13
13
  super
14
14
 
15
-
16
15
  @connection = HTTPClient.new(
17
16
  proxy: @options.proxy,
18
17
  default_header: {'Content-Type' => 'application/json'}
@@ -90,9 +89,13 @@ module AllscriptsUnityClient
90
89
  log_get_security_token
91
90
  log_info("Response Status: #{response.status}")
92
91
 
93
- raise_if_response_error(response.body)
92
+ if response.status != 200
93
+ raise make_get_security_token_error
94
+ else
95
+ raise_if_response_error(response)
94
96
 
95
- @security_token = response.body
97
+ @security_token = response.body
98
+ end
96
99
  end
97
100
 
98
101
  # See Client#retire_security_token!.
@@ -117,6 +120,14 @@ module AllscriptsUnityClient
117
120
 
118
121
  private
119
122
 
123
+ # @param [Array,String,nil] response
124
+ #
125
+ # @return [nil]
126
+ #
127
+ # @todo This method should be responsible creating an `APIError` not
128
+ # raising it. The sender should be responsible for raising the
129
+ # error so the stack trace starts in the method where the failure
130
+ # occured.
120
131
  def raise_if_response_error(response)
121
132
  if response.nil?
122
133
  raise APIError, 'Response was empty'
@@ -1,3 +1,3 @@
1
1
  module AllscriptsUnityClient
2
- VERSION = '3.3.1'
2
+ VERSION = '3.4.0'
3
3
  end
@@ -17,6 +17,10 @@ module AllscriptsUnityClient
17
17
  class APIError < RuntimeError
18
18
  end
19
19
 
20
+ # Raised whenever the security token could not be retrieved Unity.
21
+ class GetSecurityTokenError < RuntimeError
22
+ end
23
+
20
24
  # Create an instance of the Unity client.
21
25
  #
22
26
  # options:: See ClientOptions.
@@ -102,6 +102,21 @@ describe AllscriptsUnityClient::JSONClientDriver do
102
102
 
103
103
  subject.get_security_token!
104
104
  end
105
+
106
+ it 'should fail when there is a problem retrieving the security token' do
107
+ stub_request(:post, 'http://www.example.com/Unity/UnityService.svc/json/GetToken')
108
+ .to_return(
109
+ {
110
+ body: "",
111
+ headers: {},
112
+ status: 503,
113
+ }
114
+ )
115
+
116
+ expect do
117
+ subject.get_security_token!
118
+ end.to raise_error(AllscriptsUnityClient::GetSecurityTokenError)
119
+ end
105
120
  end
106
121
 
107
122
  describe '#retire_security_token!' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allscripts_unity_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.1
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - healthfinch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2017-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  version: '0'
289
289
  requirements: []
290
290
  rubyforge_project:
291
- rubygems_version: 2.4.6
291
+ rubygems_version: 2.2.2
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Allscripts Unity API client