sysaid 0.3.2 → 0.3.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sysaid/user.rb +26 -20
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 460f0f1788540fb09584b9ca8ad7e4b4b1f4d537
4
- data.tar.gz: 5a87c4b7a050a490d7cbac924b0c53ad373cd1de
3
+ metadata.gz: 18732cc848584f877374c31ba0c9b708bbdbcbb1
4
+ data.tar.gz: 6bb0ebe4e8d21b2cb60a0ac088617b468fb25316
5
5
  SHA512:
6
- metadata.gz: 33f5eacb540eeea650be02df36458053e68d91a758e60cbbb43e5ca4e1e9efbce6e7843fc82d335b5fb1a9da24f665d8a6b16956d3dd232f877a8326bbeb6440
7
- data.tar.gz: 45d33c447041f8c82dbca8435df74f63390ca9cf57062ee1d58351f5dc65eb82cd1e8ce854b5b0f40f3b501572f598ed43a6df033b1a301a8bf55ecb2f2d0e7c
6
+ metadata.gz: 23d8029b47b5b6ccdd50f4f206cab097034794df82de4941c51c544d451f6190b7b7e34784bb0869c627c62a79fb49c5e25f444c2d9408c48b1962db8caccc59
7
+ data.tar.gz: c28df645f0b57b17c5dbaa39a4b9972340d962de90aa860e1b1e8266e1d87dae1087d0ad65a324c283bc3015e4f46fa65326939aa9367179a4bfa1b7b2f0342d
@@ -3,7 +3,7 @@ class SysAid::User
3
3
  :car_number, :cellphone, :company, :cubic, :cust_int1, :cust_int2, :cust_list1, :cust_list2, :cust_notes,
4
4
  :cust_text1, :cust_text2, :department, :disable, :email_notifications, :enable_login_to_eup, :floor, :location,
5
5
  :manager, :notes, :sms, :user_manager_name, :login_domain, :login_user, :secondary_email
6
-
6
+
7
7
  # Creates a SysAid::User object
8
8
  #
9
9
  # Example:
@@ -15,29 +15,31 @@ class SysAid::User
15
15
  def initialize(username = nil)
16
16
  self.username = username
17
17
  end
18
-
18
+
19
19
  def self.find_by_username(username)
20
20
  user = SysAid::User.new(username)
21
-
21
+
22
22
  return nil unless user.refresh
23
-
23
+
24
24
  return user
25
25
  end
26
-
26
+
27
27
  # Loads the latest user information from the SysAid server
28
28
  def refresh
29
29
  begin
30
30
  SysAid.ensure_logged_in
31
-
31
+
32
32
  response = SysAid.client.call(:load_by_string_id, message: to_xml.to_s )
33
33
  if response.to_hash[:load_by_string_id_response][:return]
34
34
  set_self_from_response(response.to_hash[:load_by_string_id_response][:return])
35
35
  return true
36
36
  end
37
-
37
+
38
38
  return false
39
39
  rescue SocketError => e
40
40
  raise SysAidException, "Unable to fetch user information from SysAid server: #{e.message}"
41
+ rescue Errno::EHOSTUNREACH => e
42
+ raise SysAidException, "Unable to reach SysAid server, host unreachable: #{e.message}"
41
43
  end
42
44
  end
43
45
 
@@ -48,13 +50,17 @@ class SysAid::User
48
50
  # => true
49
51
  def save
50
52
  SysAid.ensure_logged_in
51
-
52
- # Save it via the SOAP API
53
- response = SysAid.client.call(:save, message: to_xml(false).to_s )
54
- if response.to_hash[:save_response][:return]
55
- return true
56
- else
57
- return false
53
+
54
+ begin
55
+ # Save it via the SOAP API
56
+ response = SysAid.client.call(:save, message: to_xml(false).to_s )
57
+ if response.to_hash[:save_response][:return]
58
+ return true
59
+ else
60
+ return false
61
+ end
62
+ rescue Savon::SOAPFault => e
63
+ raise SysAidException, "Unable to save user due to SOAP communications error: #{e.message}"
58
64
  end
59
65
  end
60
66
 
@@ -62,15 +68,15 @@ class SysAid::User
62
68
  #
63
69
  # Example:
64
70
  # >> user_object.delete
65
- # => nil
71
+ # => nil
66
72
  def delete
67
73
  SysAid.ensure_logged_in
68
-
74
+
69
75
  SysAid.client.call(:delete, message: to_xml(false).to_s )
70
76
  end
71
-
77
+
72
78
  private
73
-
79
+
74
80
  def to_xml(include_id = true)
75
81
  builder = Builder::XmlMarkup.new
76
82
 
@@ -109,14 +115,14 @@ class SysAid::User
109
115
  b.phone(self.phone, 'xsi:type' => 'xsd:string')
110
116
  b.secondaryEmail(self.secondary_email, 'xsi:type' => 'xsd:string')
111
117
  b.sms(self.sms, 'xsi:type' => 'xsd:string')
112
- b.userManagerName(self.user_manager_name, 'xsi:type' => 'xsd:string')
118
+ b.userManagerName(self.user_manager_name, 'xsi:type' => 'xsd:string')
113
119
  b.userName(self.username, 'xsi:type' => 'xsd:string')
114
120
  }
115
121
  xml = builder.id(self.username) if include_id
116
122
 
117
123
  xml
118
124
  end
119
-
125
+
120
126
  # Update instance variables to match what is in response
121
127
  def set_self_from_response(response)
122
128
  self.username = response[:user_name]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sysaid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Thielen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-11 00:00:00.000000000 Z
11
+ date: 2014-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  version: '0'
63
63
  requirements: []
64
64
  rubyforge_project:
65
- rubygems_version: 2.2.0
65
+ rubygems_version: 2.2.2
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: ruby-sysaid