sysaid 0.1.1 → 0.2.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 +7 -0
- data/lib/sysaid.rb +22 -75
- data/lib/sysaid/ticket.rb +153 -60
- data/lib/sysaid/user.rb +155 -0
- metadata +16 -22
- data/lib/sysaid/driver/SysaidApiServiceService.rb +0 -2294
- data/lib/sysaid/driver/SysaidApiServiceServiceClient.rb +0 -118
- data/lib/sysaid/driver/SysaidApiServiceServiceDriver.rb +0 -111
- data/lib/sysaid/driver/SysaidApiServiceServiceMappingRegistry.rb +0 -2262
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0519d826d111724b463a1f8cbb69929c01af2445
|
4
|
+
data.tar.gz: 688d94e4230f20f817a2bfe3286544fdc11ffdeb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 477e368c753ae59ce4bc1f43f16232c33d6a9b488d399e679a992bc46abe9916f66894b08fef546f0525a619834947ab56becf24ddf9e558cbf369b98d41ad30
|
7
|
+
data.tar.gz: 1e9b146eef9d2be2b83063e4bb42096f76ee9244cfde39839a02daf6872ff16b8969c2d437138aa14fe4f43793ed20c176b47bc196163e1e6384e072bd692f56
|
data/lib/sysaid.rb
CHANGED
@@ -1,63 +1,14 @@
|
|
1
|
+
require 'savon'
|
2
|
+
|
1
3
|
# The main SysAid class
|
2
4
|
class SysAid
|
3
5
|
@@logged_in = false
|
4
6
|
@@server_settings = {}
|
5
7
|
|
6
|
-
# Implements find_by_* methods, e.g. find_by_id, find_by_responsibility, etc.
|
7
|
-
def self.method_missing(meth, *args, &block)
|
8
|
-
if meth.to_s =~ /^find_by_(.+)$/
|
9
|
-
run_find_by_method($1, *args, &block)
|
10
|
-
else
|
11
|
-
super
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# Find tickets by ID, responsibility, status, etc.
|
16
|
-
# Note: run_find_by_method is called from self.method_missing
|
17
|
-
#
|
18
|
-
# Example:
|
19
|
-
# >> SysAid.find_by_id(34)
|
20
|
-
# => hola mundo
|
21
|
-
#
|
22
|
-
# Arguments:
|
23
|
-
# argument: (String or Integer)
|
24
|
-
def self.run_find_by_method(attrs, *args, &block)
|
25
|
-
# Make a key/value hash of attributes
|
26
|
-
attrs = attrs.split('_and_')
|
27
|
-
attrs_with_args = [attrs, args].transpose
|
28
|
-
conditions = Hash[attrs_with_args]
|
29
|
-
|
30
|
-
if self.logged_in? == false
|
31
|
-
self.login
|
32
|
-
end
|
33
|
-
|
34
|
-
sr = ApiServiceRequest.new
|
35
|
-
if conditions.keys[0] == "id"
|
36
|
-
# ID requires we use loadById, not executeSelectQuery
|
37
|
-
result = @@service.loadByStringId({:sessionId => @@session_id, :apiSysObj => sr, :id => conditions.values[0]})
|
38
|
-
else
|
39
|
-
result = @@service.executeSelectQuery({:sessionId => @@session_id, :apiSysObj => sr, :condition => "#{conditions.keys[0]} = '#{conditions.values[0]}'"})
|
40
|
-
end
|
41
|
-
|
42
|
-
if result.instance_variables.include?(:@v_return)
|
43
|
-
return SysAid::Ticket.new(result.v_return)
|
44
|
-
else
|
45
|
-
return nil # ticket not found
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.respond_to?(meth)
|
50
|
-
if meth.to_s =~ /^find_by_.*$/
|
51
|
-
true
|
52
|
-
else
|
53
|
-
super
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
8
|
# Accessor for internal SysaidApiService object.
|
58
9
|
# Used by SysAid::Ticket
|
59
|
-
def self.
|
60
|
-
@@
|
10
|
+
def self.client
|
11
|
+
@@client
|
61
12
|
end
|
62
13
|
|
63
14
|
# Accessor for session ID returned by SysAid server.
|
@@ -74,8 +25,7 @@ class SysAid
|
|
74
25
|
# => true
|
75
26
|
def self.logged_in?
|
76
27
|
# Until official word comes from the company, we're going to login every time
|
77
|
-
# to avoid a problem with undetected timeouts
|
78
|
-
|
28
|
+
# to avoid a problem with undetected timeouts.
|
79
29
|
#if @@logged_in == false
|
80
30
|
login
|
81
31
|
#end
|
@@ -87,32 +37,29 @@ class SysAid
|
|
87
37
|
end
|
88
38
|
end
|
89
39
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
private
|
99
|
-
def self.login
|
100
|
-
@@service = SysaidApiService.new(@@server_settings[:endpoint])
|
101
|
-
|
102
|
-
# see SOAP wiredumps (for debugging)
|
103
|
-
unless @@server_settings[:debug].nil?
|
104
|
-
@@service.wiredump_dev = @@server_settings[:debug]
|
40
|
+
# self.login does not require credentials be passed every time.
|
41
|
+
# SysAid sometimes times out the session and we can simply call 'login' again with the
|
42
|
+
# saved credentials to get around the timeout.
|
43
|
+
def self.login(account = nil, username = nil, password = nil, wsdl_uri = nil, debug = false)
|
44
|
+
if account and username and password and wsdl_uri
|
45
|
+
# Save server settings in case we need to log in again later
|
46
|
+
@@server_settings = { :account => account, :username => username, :password => password, :wsdl_uri => wsdl_uri, :debug => debug }
|
105
47
|
end
|
106
|
-
|
48
|
+
|
49
|
+
@@client = Savon.client(wsdl: @@server_settings[:wsdl_uri], log: @@server_settings[:debug])
|
50
|
+
|
107
51
|
# login
|
108
52
|
unless @@server_settings[:account].nil?
|
109
|
-
|
110
|
-
|
111
|
-
|
53
|
+
# Call login
|
54
|
+
response = @@client.call(:login, message: { accountId: @@server_settings[:account], userName: @@server_settings[:username], password: @@server_settings[:password] })
|
55
|
+
|
56
|
+
# Retrieve response
|
57
|
+
@@session_id = response.to_hash[:login_response][:return]
|
58
|
+
|
112
59
|
@@logged_in = true
|
113
60
|
end
|
114
61
|
end
|
115
62
|
end
|
116
63
|
|
117
|
-
require 'sysaid/driver/SysaidApiServiceServiceDriver'
|
118
64
|
require 'sysaid/ticket'
|
65
|
+
require 'sysaid/user'
|
data/lib/sysaid/ticket.rb
CHANGED
@@ -1,20 +1,39 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
class SysAid::Ticket
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
|
4
|
+
attr_accessor :agreement, :assignCounter, :assignedTo, :ciid, :category, :currentSupportLevel, :custInt1,
|
5
|
+
:custInt2, :custList1, :custList2, :description, :escalation, :id, :location, :maxSupportLevel,
|
6
|
+
:parentLink, :priority, :projectID, :reopenCounter, :requestUser, :source, :srSubType, :srType,
|
7
|
+
:status, :subCategory, :submitUser, :successRating, :taskID, :title, :urgency, :version, :archive,
|
8
|
+
:assignedGroup, :assignedTo, :cc, :changeCategory, :closeTime, :closureInformation, :computerID,
|
9
|
+
:custNotes, :custText1, :custText2, :impact, :notes, :resolution, :solution, :thirdLevelCategory,
|
10
|
+
:updateTime, :updateUser, :userManager, :workaround
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
self.closeTime = Date.new
|
14
|
+
self.updateTime = Date.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.find_by_id(ticket_id)
|
18
|
+
ticket = SysAid::Ticket.new
|
12
19
|
|
13
|
-
|
14
|
-
|
20
|
+
ticket.id = ticket_id
|
21
|
+
|
22
|
+
return nil unless ticket.refresh
|
23
|
+
|
24
|
+
return ticket
|
25
|
+
end
|
26
|
+
|
27
|
+
# Loads the latest user information from the SysAid server
|
28
|
+
def refresh
|
29
|
+
response = SysAid.client.call(:load_by_string_id, message: to_xml)
|
30
|
+
|
31
|
+
if response.to_hash[:load_by_string_id_response][:return]
|
32
|
+
set_self_from_response(response.to_hash[:load_by_string_id_response][:return])
|
33
|
+
return true
|
15
34
|
end
|
16
35
|
|
17
|
-
|
36
|
+
return false
|
18
37
|
end
|
19
38
|
|
20
39
|
# Saves a ticket back to the SysAid server
|
@@ -24,17 +43,12 @@ class SysAid::Ticket
|
|
24
43
|
# => true
|
25
44
|
def save
|
26
45
|
if SysAid.logged_in? == false
|
27
|
-
raise "You must
|
46
|
+
raise "You must log in before creating or saving a ticket."
|
28
47
|
end
|
29
48
|
|
30
|
-
# Save public variables back to the ApiServiceRequest (@sr) variable
|
31
|
-
set_sr_from_self
|
32
|
-
|
33
49
|
# Save it via the SOAP API
|
34
|
-
|
35
|
-
if
|
36
|
-
self.instance_variable_set(:@id, result.v_return.to_i)
|
37
|
-
@sr.instance_variable_set(:@id, result.v_return.to_i)
|
50
|
+
response = SysAid.client.call(:save, message: to_xml(false))
|
51
|
+
if response.to_hash[:save_response][:return]
|
38
52
|
return true
|
39
53
|
else
|
40
54
|
return false
|
@@ -43,54 +57,133 @@ class SysAid::Ticket
|
|
43
57
|
|
44
58
|
# Deletes a ticket from the SysAid server
|
45
59
|
#
|
60
|
+
# No return value as SysAid's 'delete' call returns void. No idea why.
|
61
|
+
#
|
46
62
|
# Example:
|
47
63
|
# >> ticket_object.delete
|
48
64
|
# => true
|
49
65
|
def delete
|
50
|
-
|
51
|
-
SysAid.service.delete({:sessionId => SysAid.session_id, :apiSysObj => @sr})
|
52
|
-
|
53
|
-
return true
|
54
|
-
end
|
55
|
-
|
56
|
-
false
|
57
|
-
end
|
58
|
-
|
59
|
-
# For dynamically creating attr_accessors
|
60
|
-
# (from http://stackoverflow.com/questions/4082665/dynamically-create-class-attributes-with-attr-accessor)
|
61
|
-
def create_method( name, &block )
|
62
|
-
self.class.send( :define_method, name, &block )
|
63
|
-
end
|
64
|
-
|
65
|
-
def create_attr( name )
|
66
|
-
create_method( "#{name}=".to_sym ) { |val|
|
67
|
-
instance_variable_set( "@" + name, val)
|
68
|
-
}
|
69
|
-
|
70
|
-
create_method( name.to_sym ) {
|
71
|
-
instance_variable_get( "@" + name )
|
72
|
-
}
|
66
|
+
SysAid.client.call(:delete, message: to_xml(false))
|
73
67
|
end
|
74
68
|
|
75
69
|
private
|
76
|
-
# Note: We sync between @sr and our instance variables for API convenience, i.e.
|
77
|
-
# so one can say, ticket.title = "something" instead of
|
78
|
-
# ticket.instance_variable_get(:@sr).instance_variable_set(:@title, "something").
|
79
70
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
self.
|
87
|
-
|
71
|
+
def to_xml(include_id = true)
|
72
|
+
builder = Builder::XmlMarkup.new
|
73
|
+
|
74
|
+
builder.sessionId(SysAid.session_id)
|
75
|
+
xml = builder.apiSysObj('xsi:type' => "tns:apiServiceRequest") { |b|
|
76
|
+
b.agreement(self.agreement, 'xsi:type' => 'xsd:int')
|
77
|
+
b.archive(self.archive, 'xsi:type' => 'xsd:boolean')
|
78
|
+
b.assignCounter(self.assignCounter, 'xsi:type' => 'xsd:int')
|
79
|
+
b.assignedGroup(self.assignedGroup, 'xsi:type' => 'xsd:string')
|
80
|
+
b.assignedTo(self.assignedTo, 'xsi:type' => 'xsd:string')
|
81
|
+
b.CIId(self.ciid, 'xsi:type' => 'xsd:int')
|
82
|
+
b.category(self.category, 'xsi:type' => 'xsd:string')
|
83
|
+
b.cc(self.cc, 'xsi:type' => 'xsd:string')
|
84
|
+
b.changeCategory(self.changeCategory, 'xsi:type' => 'xsd:int')
|
85
|
+
b.closeTime(self.closeTime.rfc3339, 'xsi:type' => 'xsd:dateTime')
|
86
|
+
b.closureInformation(self.closureInformation, 'xsi:type' => 'xsd:int')
|
87
|
+
b.computerID(self.computerID, 'xsi:type' => 'xsd:string')
|
88
|
+
b.currentSupportLevel(self.currentSupportLevel, 'xsi:type' => 'xsd:int')
|
89
|
+
b.custInt1(self.custInt1, 'xsi:type' => 'xsd:int')
|
90
|
+
b.custInt2(self.custInt2, 'xsi:type' => 'xsd:int')
|
91
|
+
b.custList1(self.custList1, 'xsi:type' => 'xsd:int')
|
92
|
+
b.custList2(self.custList2, 'xsi:type' => 'xsd:int')
|
93
|
+
b.custNotes(self.custNotes, 'xsi:type' => 'xsd:string')
|
94
|
+
b.custText1(self.custText1, 'xsi:type' => 'xsd:string')
|
95
|
+
b.custText2(self.custText2, 'xsi:type' => 'xsd:string')
|
96
|
+
b.customDateFields
|
97
|
+
#b.customFields
|
98
|
+
b.description(self.description, 'xsi:type' => 'xsd:string')
|
99
|
+
# <emailAccount xsi:type="xsd:string"></emailAccount>
|
100
|
+
b.escalation(self.escalation, 'xsi:type' => 'xsd:int')
|
101
|
+
# <followupText xsi:type="xsd:string"></followupText>
|
102
|
+
b.id(self.id, 'xsi:type' => 'xsd:int')
|
103
|
+
b.impact(self.impact, 'xsi:type' => 'xsd:int')
|
104
|
+
# <insertTime xsi:type="xsd:dateTime">
|
105
|
+
# 2012-06-13T17:42:03.053Z</insertTime>
|
106
|
+
b.location(self.location, 'xsi:type' => 'xsd:int')
|
107
|
+
b.maxSupportLevel(self.maxSupportLevel, 'xsi:type' => 'xsd:int')
|
108
|
+
b.notes(self.notes, 'xsi:type' => 'xsd:string')
|
109
|
+
b.parentLink(self.parentLink, 'xsi:type' => 'xsd:int')
|
110
|
+
b.priority(self.priority, 'xsi:type' => 'xsd:int')
|
111
|
+
b.projectID(self.projectID, 'xsi:type' => 'xsd:int')
|
112
|
+
b.reopenCounter(self.reopenCounter, 'xsi:type' => 'xsd:int')
|
113
|
+
b.requestUser(self.requestUser, 'xsi:type' => 'xsd:string')
|
114
|
+
b.resolution(self.resolution, 'xsi:type' => 'xsd:string')
|
115
|
+
b.solution(self.solution, 'xsi:type' => 'xsd:string')
|
116
|
+
b.source(self.source, 'xsi:type' => 'xsd:int')
|
117
|
+
b.srSubType(self.srSubType, 'xsi:type' => 'xsd:int')
|
118
|
+
b.srType(self.srType, 'xsi:type' => 'xsd:int')
|
119
|
+
b.status(self.status, 'xsi:type' => 'xsd:int')
|
120
|
+
b.subCategory(self.subCategory, 'xsi:type' => 'xsd:string')
|
121
|
+
b.successRating(self.successRating, 'xsi:type' => 'xsd:int')
|
122
|
+
b.taskID(self.taskID, 'xsi:type' => 'xsd:int')
|
123
|
+
b.thirdLevelCategory(self.thirdLevelCategory, 'xsi:type' => 'xsd:string')
|
124
|
+
b.title(self.title, 'xsi:type' => 'xsd:string')
|
125
|
+
b.updateTime(self.updateTime.rfc3339, 'xsi:type' => 'xsd:dateTime')
|
126
|
+
b.updateUser(self.updateUser, 'xsi:type' => 'xsd:string')
|
127
|
+
b.urgency(self.urgency, 'xsi:type' => 'xsd:int')
|
128
|
+
b.userManager(self.userManager, 'xsi:type' => 'xsd:string')
|
129
|
+
b.version(self.version, 'xsi:type' => 'xsd:int')
|
130
|
+
b.workaround(self.workaround, 'xsi:type' => 'xsd:string')
|
131
|
+
}
|
132
|
+
xml = builder.id(self.id) if include_id
|
133
|
+
|
134
|
+
xml
|
88
135
|
end
|
89
136
|
|
90
|
-
#
|
91
|
-
def
|
92
|
-
|
93
|
-
|
94
|
-
|
137
|
+
# Update instance variables to match what is in response
|
138
|
+
def set_self_from_response(response)
|
139
|
+
self.agreement = response[:agreement]
|
140
|
+
self.archive = response[:archive]
|
141
|
+
self.assignCounter = response[:assignCounter]
|
142
|
+
self.assignedGroup = response[:assignGroup]
|
143
|
+
self.assignedTo = response[:assignTo]
|
144
|
+
self.ciid = response[:CIId]
|
145
|
+
self.category = response[:category]
|
146
|
+
self.cc = response[:cc]
|
147
|
+
self.changeCategory = response[:changeCategory]
|
148
|
+
self.closeTime = Date.parse(response[:closeTime]) if response[:closeTime]
|
149
|
+
self.closureInformation = response[:closureInformation]
|
150
|
+
self.computerID = response[:computerID]
|
151
|
+
self.currentSupportLevel = response[:currentSupportLevel]
|
152
|
+
self.custInt1 = response[:custInt1]
|
153
|
+
self.custInt2 = response[:custInt2]
|
154
|
+
self.custList1 = response[:custList1]
|
155
|
+
self.custList2 = response[:custList2]
|
156
|
+
self.custNotes = response[:custNotes]
|
157
|
+
self.custText1 = response[:custText1]
|
158
|
+
self.custText2 = response[:custText2]
|
159
|
+
self.description = response[:description]
|
160
|
+
self.escalation = response[:escalation]
|
161
|
+
self.id = response[:id]
|
162
|
+
self.impact = response[:impact]
|
163
|
+
self.location = response[:location]
|
164
|
+
self.maxSupportLevel = response[:maxSupportLevel]
|
165
|
+
self.notes = response[:notes]
|
166
|
+
self.parentLink = response[:parentLink]
|
167
|
+
self.priority = response[:priority]
|
168
|
+
self.projectID = response[:projectID]
|
169
|
+
self.reopenCounter = response[:reopenCounter]
|
170
|
+
self.requestUser = response[:requestUser]
|
171
|
+
self.resolution = response[:resolution]
|
172
|
+
self.solution = response[:solution]
|
173
|
+
self.source = response[:source]
|
174
|
+
self.srSubType = response[:srSubType]
|
175
|
+
self.srType = response[:srType]
|
176
|
+
self.status = response[:status]
|
177
|
+
self.subCategory = response[:subCategory]
|
178
|
+
self.successRating = response[:successRating]
|
179
|
+
self.taskID = response[:taskID]
|
180
|
+
self.thirdLevelCategory = response[:thirdLevelCategory]
|
181
|
+
self.title = response[:title]
|
182
|
+
self.updateTime = Date.parse(response[:updateTime]) if response[:updateTime]
|
183
|
+
self.updateUser = response[:updateUser]
|
184
|
+
self.urgency = response[:urgency]
|
185
|
+
self.userManager = response[:userManager]
|
186
|
+
self.version = response[:version]
|
187
|
+
self.workaround = response[:workaround]
|
95
188
|
end
|
96
189
|
end
|
data/lib/sysaid/user.rb
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
class SysAid::User
|
2
|
+
attr_accessor :username, :display_name, :email, :phone, :first_name, :last_name, :admin, :agreement, :building,
|
3
|
+
:car_number, :cellphone, :company, :cubic, :custInt1, :custInt2, :custList1, :custList2, :custNotes,
|
4
|
+
:custText1, :custText2, :department, :disable, :emailNotifications, :enableLoginToEup, :floor, :location,
|
5
|
+
:manager, :notes, :sms, :userManagerName, :loginDomain, :loginUser, :secondaryEmail
|
6
|
+
|
7
|
+
# Creates a SysAid::User object
|
8
|
+
#
|
9
|
+
# Example:
|
10
|
+
# >> SysAid::User.new
|
11
|
+
# => SysAid::User
|
12
|
+
#
|
13
|
+
# Arguments:
|
14
|
+
# username: (SysAid username, optional)
|
15
|
+
def initialize(username = nil)
|
16
|
+
self.username = username
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.find_by_username(username)
|
20
|
+
user = SysAid::User.new(username)
|
21
|
+
|
22
|
+
return nil unless user.refresh
|
23
|
+
|
24
|
+
return user
|
25
|
+
end
|
26
|
+
|
27
|
+
# Loads the latest user information from the SysAid server
|
28
|
+
def refresh
|
29
|
+
response = SysAid.client.call(:load_by_string_id, message: to_xml.to_s )
|
30
|
+
if response.to_hash[:load_by_string_id_response][:return]
|
31
|
+
set_self_from_response(response.to_hash[:load_by_string_id_response][:return])
|
32
|
+
return true
|
33
|
+
end
|
34
|
+
|
35
|
+
return false
|
36
|
+
end
|
37
|
+
|
38
|
+
# Saves a user back to the SysAid server
|
39
|
+
#
|
40
|
+
# Example:
|
41
|
+
# >> user_object.save
|
42
|
+
# => true
|
43
|
+
def save
|
44
|
+
if SysAid.logged_in? == false
|
45
|
+
raise "You must log in before creating or saving a user."
|
46
|
+
end
|
47
|
+
|
48
|
+
# Save it via the SOAP API
|
49
|
+
response = SysAid.client.call(:save, message: to_xml(false).to_s )
|
50
|
+
if response.to_hash[:save_response][:return]
|
51
|
+
return true
|
52
|
+
else
|
53
|
+
return false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Deletes a ticket from the SysAid server
|
58
|
+
#
|
59
|
+
# Example:
|
60
|
+
# >> ticket_object.delete
|
61
|
+
# => true
|
62
|
+
def delete
|
63
|
+
response = SysAid.client.call(:delete, message: to_xml(false).to_s )
|
64
|
+
|
65
|
+
#response.to_hash[:delete_response]
|
66
|
+
|
67
|
+
# The SysAid API doesn't return anything on delete.
|
68
|
+
# Think about that for a minute.
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def to_xml(include_id = true)
|
74
|
+
builder = Builder::XmlMarkup.new
|
75
|
+
|
76
|
+
builder.sessionId(SysAid.session_id)
|
77
|
+
xml = builder.apiSysObj('xsi:type' => "tns:apiSysAidUser") { |b|
|
78
|
+
b.admin(self.admin, 'xsi:type' => 'xsd:boolean')
|
79
|
+
b.agreement(self.agreement, 'xsi:type' => 'xsd:int')
|
80
|
+
b.building(self.building, 'xsi:type' => 'xsd:string')
|
81
|
+
b.carNumber(self.car_number, 'xsi:type' => 'xsd:string')
|
82
|
+
b.cellphone(self.cellphone, 'xsi:type' => 'xsd:string')
|
83
|
+
b.company(self.company, 'xsi:type' => 'xsd:int')
|
84
|
+
b.cubic(self.cubic, 'xsi:type' => 'xsd:string')
|
85
|
+
b.custInt1(self.custInt1, 'xsi:type' => 'xsd:int')
|
86
|
+
b.custInt2(self.custInt2, 'xsi:type' => 'xsd:int')
|
87
|
+
b.custList1(self.custList1, 'xsi:type' => 'xsd:int')
|
88
|
+
b.custList2(self.custList2, 'xsi:type' => 'xsd:int')
|
89
|
+
b.custNotes(self.custNotes, 'xsi:type' => 'xsd:string')
|
90
|
+
b.custText1(self.custText1, 'xsi:type' => 'xsd:string')
|
91
|
+
b.custText2(self.custText2, 'xsi:type' => 'xsd:string')
|
92
|
+
b.customDateFields
|
93
|
+
b.customFields
|
94
|
+
b.department(self.department, 'xsi:type' => 'xsd:int')
|
95
|
+
b.disable(self.disable, 'xsi:type' => 'xsd:boolean')
|
96
|
+
b.displayName(self.display_name, 'xsi:type' => 'xsd:string')
|
97
|
+
b.email(self.email, 'xsi:type' => 'xsd:string')
|
98
|
+
b.emailNotifications(self.emailNotifications, 'xsi:type' => 'xsd:boolean')
|
99
|
+
b.enableLoginToEup(self.enableLoginToEup, 'xsi:type' => 'xsd:boolean')
|
100
|
+
b.firstName(self.first_name, 'xsi:type' => 'xsd:string')
|
101
|
+
b.floor(self.floor, 'xsi:type' => 'xsd:string')
|
102
|
+
b.lastName(self.last_name, 'xsi:type' => 'xsd:string')
|
103
|
+
b.location(self.location, 'xsi:type' => 'xsd:int')
|
104
|
+
b.loginDomain(self.loginDomain, 'xsi:type' => 'xsd:string')
|
105
|
+
b.loginUser(self.loginUser, 'xsi:type' => 'xsd:string')
|
106
|
+
b.manager(self.manager, 'xsi:type' => 'xsd:boolean')
|
107
|
+
b.notes(self.notes, 'xsi:type' => 'xsd:string')
|
108
|
+
b.phone(self.phone, 'xsi:type' => 'xsd:string')
|
109
|
+
b.secondaryEmail(self.secondaryEmail, 'xsi:type' => 'xsd:string')
|
110
|
+
b.sms(self.sms, 'xsi:type' => 'xsd:string')
|
111
|
+
b.userManagerName(self.userManagerName, 'xsi:type' => 'xsd:string')
|
112
|
+
b.userName(self.username, 'xsi:type' => 'xsd:string')
|
113
|
+
}
|
114
|
+
xml = builder.id(self.username) if include_id
|
115
|
+
|
116
|
+
xml
|
117
|
+
end
|
118
|
+
|
119
|
+
# Update instance variables to match what is in response
|
120
|
+
def set_self_from_response(response)
|
121
|
+
self.username = response[:user_name]
|
122
|
+
self.display_name = response[:display_name]
|
123
|
+
self.email = response[:email]
|
124
|
+
self.phone = response[:phone]
|
125
|
+
self.first_name = response[:first_name]
|
126
|
+
self.last_name = response[:last_name]
|
127
|
+
self.admin = response[:admin]
|
128
|
+
self.agreement = response[:agreement]
|
129
|
+
self.building = response[:building]
|
130
|
+
self.car_number = response[:carNumber]
|
131
|
+
self.cellphone = response[:cellphone]
|
132
|
+
self.company = response[:company]
|
133
|
+
self.cubic = response[:cubic]
|
134
|
+
self.custInt1 = response[:custInt1]
|
135
|
+
self.custInt2 = response[:custInt2]
|
136
|
+
self.custList1 = response[:custList1]
|
137
|
+
self.custList2 = response[:custList2]
|
138
|
+
self.custNotes = response[:custNotes]
|
139
|
+
self.custText1 = response[:custText1]
|
140
|
+
self.custText2 = response[:custText2]
|
141
|
+
self.department = response[:department]
|
142
|
+
self.disable = response[:disable]
|
143
|
+
self.emailNotifications = response[:emailNotifications]
|
144
|
+
self.enableLoginToEup = response[:enableLoginToEup]
|
145
|
+
self.floor = response[:floor]
|
146
|
+
self.location = response[:location]
|
147
|
+
self.manager = response[:manager]
|
148
|
+
self.notes = response[:notes]
|
149
|
+
self.sms = response[:sms]
|
150
|
+
self.userManagerName = response[:userManagerName]
|
151
|
+
self.loginDomain = response[:loginDomain]
|
152
|
+
self.loginUser = response[:loginUser]
|
153
|
+
self.secondaryEmail = response[:secondaryEmail]
|
154
|
+
end
|
155
|
+
end
|