sysaid 0.3.1 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d418e910f545a0ec051edba6e5a6e922099e563
4
- data.tar.gz: 87e00dad201543cf04e081e4e7727fc4374cb96e
3
+ metadata.gz: 460f0f1788540fb09584b9ca8ad7e4b4b1f4d537
4
+ data.tar.gz: 5a87c4b7a050a490d7cbac924b0c53ad373cd1de
5
5
  SHA512:
6
- metadata.gz: 39c8f122024da00d30d6f1af474812908753735fee455ced3964c110080653d524aa3b756c4ae2f5de63473b6f5d30a365b712fc98ce4960327b67ec88637884
7
- data.tar.gz: 8126e7f98dcb4983ba5bf5e40e62f218d4f6b5bc2645b0a340aa65da9f0bec77f985ee8f1518f361ce9c140f56a50556421b25b19281ba2013380e17c59b113e
6
+ metadata.gz: 33f5eacb540eeea650be02df36458053e68d91a758e60cbbb43e5ca4e1e9efbce6e7843fc82d335b5fb1a9da24f665d8a6b16956d3dd232f877a8326bbeb6440
7
+ data.tar.gz: 45d33c447041f8c82dbca8435df74f63390ca9cf57062ee1d58351f5dc65eb82cd1e8ce854b5b0f40f3b501572f598ed43a6df033b1a301a8bf55ecb2f2d0e7c
@@ -7,7 +7,7 @@ end
7
7
  # The main SysAid class
8
8
  class SysAid
9
9
  @@logged_in = false
10
- @@server_settings = {}
10
+ @@server_settings = { account: nil, username: nil, password: nil, wsdl_uri: nil, debug: false }
11
11
 
12
12
  # Accessor for internal SysaidApiService object.
13
13
  # Used by SysAid::Ticket
@@ -26,6 +26,20 @@ class SysAid
26
26
  def self.server_settings
27
27
  @@server_settings
28
28
  end
29
+ def self.server_settings=(server_settings)
30
+ @@server_settings = server_settings
31
+ # If they don't pass in debug, set it to false to maintain default settings
32
+ @@server_settings[:debug] = false if server_settings[:debug].nil?
33
+ end
34
+
35
+ # The SysAid API isn't clear on what creates an API timeout. It's possible to login
36
+ # and make SOAP calls many minutes later but the API _seems_ to timeout at some point.
37
+ # With the exception of the added delay, there's no harm in simply logging in over and
38
+ # over with each call, so we do this in ensure_logged_in until we can get a better answer
39
+ # on what we can do with the SysAid API to _actually_ ensure we're logged in.
40
+ def self.ensure_logged_in
41
+ self.login unless self.logged_in?
42
+ end
29
43
 
30
44
  # Returns true if logged into SysAid server
31
45
  # Note: By design, logged_in? will try to log in if it isn't already
@@ -34,6 +48,8 @@ class SysAid
34
48
  # >> SysAid.logged_in?
35
49
  # => true
36
50
  def self.logged_in?
51
+ puts "SysAid.logged_in? called" if @@server_settings[:debug]
52
+
37
53
  # Until official word comes from the company, we're going to login every time
38
54
  # to avoid a problem with undetected timeouts.
39
55
  #if @@logged_in == false
@@ -50,10 +66,14 @@ class SysAid
50
66
  # self.login does not require credentials be passed every time.
51
67
  # SysAid sometimes times out the session and we can simply call 'login' again with the
52
68
  # saved credentials to get around the timeout.
53
- def self.login(account = nil, username = nil, password = nil, wsdl_uri = nil, debug = false)
69
+ def self.login(account = nil, username = nil, password = nil, wsdl_uri = nil, debug = nil)
70
+ puts "SysAid.login" if @@server_settings[:debug]
71
+
54
72
  if account and username and password and wsdl_uri
55
73
  # Save server settings in case we need to log in again later
56
- @@server_settings = { :account => account, :username => username, :password => password, :wsdl_uri => wsdl_uri, :debug => debug }
74
+ @@server_settings = { :account => account, :username => username, :password => password, :wsdl_uri => wsdl_uri }
75
+ # 'debug' parameter cannot default to false else it would override default, so use nil and check
76
+ @@server_settings[:debug] = debug if debug != nil
57
77
  end
58
78
 
59
79
  begin
@@ -27,6 +27,8 @@ class SysAid::Activity
27
27
  # Returns an array of Activity IDs based on ticket_id.
28
28
  # Returns false on error.
29
29
  def self.find_by_ticket_id(ticket_id)
30
+ SysAid.ensure_logged_in
31
+
30
32
  response = SysAid.client.call(:execute_select_query, message: sql_query(" service_req_id = #{ticket_id}"))
31
33
 
32
34
  if response.to_hash[:execute_select_query_response][:return]
@@ -49,6 +51,8 @@ class SysAid::Activity
49
51
 
50
52
  # Loads the latest ticket information from the SysAid server
51
53
  def refresh
54
+ SysAid.ensure_logged_in
55
+
52
56
  response = SysAid.client.call(:load_by_string_id, message: to_xml)
53
57
 
54
58
  if response.to_hash[:load_by_string_id_response][:return]
@@ -65,9 +69,7 @@ class SysAid::Activity
65
69
  # >> activity_object.save
66
70
  # => true
67
71
  def save
68
- if SysAid.logged_in? == false
69
- raise "You must log in before creating or saving an activity."
70
- end
72
+ SysAid.ensure_logged_in
71
73
 
72
74
  # Save it via the SOAP API
73
75
  response = SysAid.client.call(:save, message: to_xml(false))
@@ -88,6 +90,8 @@ class SysAid::Activity
88
90
  # >> activity_object.delete
89
91
  # => true
90
92
  def delete
93
+ SysAid.ensure_logged_in
94
+
91
95
  SysAid.client.call(:delete, message: to_xml(false))
92
96
 
93
97
  reset_all_attributes
@@ -22,6 +22,8 @@ class SysAid::Project
22
22
  end
23
23
 
24
24
  def self.find_by_query(query)
25
+ SysAid.ensure_logged_in
26
+
25
27
  response = SysAid.client.call(:execute_select_query, message: sql_query(query))
26
28
 
27
29
  if response.to_hash[:execute_select_query_response][:return]
@@ -33,6 +35,8 @@ class SysAid::Project
33
35
 
34
36
  # Loads the latest project information from the SysAid server
35
37
  def refresh
38
+ SysAid.ensure_logged_in
39
+
36
40
  response = SysAid.client.call(:load_by_string_id, message: to_xml)
37
41
 
38
42
  if response.to_hash[:load_by_string_id_response][:return]
@@ -49,9 +53,7 @@ class SysAid::Project
49
53
  # >> project_object.save
50
54
  # => true
51
55
  def save
52
- if SysAid.logged_in? == false
53
- raise "You must log in before creating or saving a project."
54
- end
56
+ SysAid.ensure_logged_in
55
57
 
56
58
  # Save it via the SOAP API
57
59
  response = SysAid.client.call(:save, message: to_xml(false))
@@ -70,6 +72,7 @@ class SysAid::Project
70
72
  # >> project_object.delete
71
73
  # => true
72
74
  def delete
75
+ SysAid.ensure_logged_in
73
76
  SysAid.client.call(:delete, message: to_xml(false))
74
77
  end
75
78
 
@@ -92,8 +95,6 @@ class SysAid::Project
92
95
  b.assignedGroup(self.assigned_group, 'xsi:type' => 'xsd:string')
93
96
  b.category(self.category, 'xsi:type' => 'xsd:int')
94
97
  b.company(self.company, 'xsi:type' => 'xsd:int')
95
- #b.custDate1(self.cust_date1.rfc3339, 'xsi:type' => 'xsd:dateTime')
96
- #b.custDate2(self.cust_date2.rfc3339, 'xsi:type' => 'xsd:dateTime')
97
98
  b.custInt1(self.cust_int1, 'xsi:type' => 'xsd:int')
98
99
  b.custInt2(self.cust_int2, 'xsi:type' => 'xsd:int')
99
100
  b.custList1(self.cust_list1, 'xsi:type' => 'xsd:int')
@@ -102,7 +103,6 @@ class SysAid::Project
102
103
  b.custText1(self.cust_text1, 'xsi:type' => 'xsd:string')
103
104
  b.custText2(self.cust_text2, 'xsi:type' => 'xsd:string')
104
105
  b.customDateFields
105
- #b.customFields
106
106
  b.description(self.description, 'xsi:type' => 'xsd:string')
107
107
  b.endTime(self.end_time.rfc3339, 'xsi:type' => 'xsd:dateTime')
108
108
  b.id(self.id, 'xsi:type' => 'xsd:int')
@@ -127,8 +127,6 @@ class SysAid::Project
127
127
  self.assigned_group = response[:assign_group]
128
128
  self.category = response[:category]
129
129
  self.company = response[:company]
130
- #self.cust_date1 = response[:cust_date1]
131
- #self.cust_date2 = response[:cust_date2]
132
130
  self.cust_int1 = response[:cust_int1]
133
131
  self.cust_int2 = response[:cust_int2]
134
132
  self.cust_list1 = response[:cust_list1]
@@ -22,6 +22,8 @@ class SysAid::Task
22
22
  end
23
23
 
24
24
  def self.find_by_project_id(project_id)
25
+ SysAid.ensure_logged_in
26
+
25
27
  response = SysAid.client.call(:execute_select_query, message: sql_query(project_id))
26
28
 
27
29
  if response.to_hash[:execute_select_query_response][:return]
@@ -33,6 +35,8 @@ class SysAid::Task
33
35
 
34
36
  # Loads the latest task information from the SysAid server
35
37
  def refresh
38
+ SysAid.ensure_logged_in
39
+
36
40
  response = SysAid.client.call(:load_by_string_id, message: to_xml)
37
41
 
38
42
  if response.to_hash[:load_by_string_id_response][:return]
@@ -49,9 +53,7 @@ class SysAid::Task
49
53
  # >> task_object.save
50
54
  # => true
51
55
  def save
52
- if SysAid.logged_in? == false
53
- raise "You must log in before creating or saving a task."
54
- end
56
+ SysAid.ensure_logged_in
55
57
 
56
58
  # Save it via the SOAP API
57
59
  response = SysAid.client.call(:save, message: to_xml(false))
@@ -70,6 +72,8 @@ class SysAid::Task
70
72
  # >> task_object.delete
71
73
  # => true
72
74
  def delete
75
+ SysAid.ensure_logged_in
76
+
73
77
  SysAid.client.call(:delete, message: to_xml(false))
74
78
  end
75
79
 
@@ -81,6 +81,8 @@ class SysAid::Ticket
81
81
 
82
82
  # Loads the latest ticket information from the SysAid server
83
83
  def refresh
84
+ SysAid.ensure_logged_in
85
+
84
86
  response = SysAid.client.call(:load_by_string_id, message: to_xml)
85
87
 
86
88
  if response.to_hash[:load_by_string_id_response][:return]
@@ -110,9 +112,7 @@ class SysAid::Ticket
110
112
  # >> ticket_object.save
111
113
  # => true
112
114
  def save
113
- if SysAid.logged_in? == false
114
- raise "You must log in before creating or saving a ticket."
115
- end
115
+ SysAid.ensure_logged_in
116
116
 
117
117
  # Save it via the SOAP API
118
118
  response = SysAid.client.call(:save, message: to_xml(false))
@@ -133,6 +133,8 @@ class SysAid::Ticket
133
133
  # >> ticket_object.delete
134
134
  # => true
135
135
  def delete
136
+ SysAid.ensure_logged_in
137
+
136
138
  SysAid.client.call(:delete, message: to_xml(false))
137
139
 
138
140
  reset_all_attributes
@@ -27,6 +27,8 @@ class SysAid::User
27
27
  # Loads the latest user information from the SysAid server
28
28
  def refresh
29
29
  begin
30
+ SysAid.ensure_logged_in
31
+
30
32
  response = SysAid.client.call(:load_by_string_id, message: to_xml.to_s )
31
33
  if response.to_hash[:load_by_string_id_response][:return]
32
34
  set_self_from_response(response.to_hash[:load_by_string_id_response][:return])
@@ -45,9 +47,7 @@ class SysAid::User
45
47
  # >> user_object.save
46
48
  # => true
47
49
  def save
48
- if SysAid.logged_in? == false
49
- raise "You must log in before creating or saving a user."
50
- end
50
+ SysAid.ensure_logged_in
51
51
 
52
52
  # Save it via the SOAP API
53
53
  response = SysAid.client.call(:save, message: to_xml(false).to_s )
@@ -64,6 +64,8 @@ class SysAid::User
64
64
  # >> user_object.delete
65
65
  # => nil
66
66
  def delete
67
+ SysAid.ensure_logged_in
68
+
67
69
  SysAid.client.call(:delete, message: to_xml(false).to_s )
68
70
  end
69
71
 
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.1
4
+ version: 0.3.2
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-10 00:00:00.000000000 Z
11
+ date: 2014-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon