advantage_quickbase 0.7.2 → 0.8.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.
- data/lib/quickbase.rb +24 -10
- data/lib/user.rb +15 -10
- metadata +2 -2
data/lib/quickbase.rb
CHANGED
@@ -63,7 +63,7 @@ module AdvantageQuickbase
|
|
63
63
|
|
64
64
|
if records.length > 0
|
65
65
|
return records.first
|
66
|
-
else
|
66
|
+
else
|
67
67
|
return {}
|
68
68
|
end
|
69
69
|
end
|
@@ -144,9 +144,12 @@ module AdvantageQuickbase
|
|
144
144
|
app_token
|
145
145
|
end
|
146
146
|
|
147
|
-
def import_from_csv( db_id,
|
147
|
+
def import_from_csv( db_id, import_data, columns=nil )
|
148
|
+
# If import_data contains hashes, use the keys as the import headers
|
149
|
+
columns ||= import_data[ 0 ].map{ |fid, value| fid }
|
148
150
|
columns = normalize_list( columns )
|
149
|
-
|
151
|
+
|
152
|
+
xml = build_csv_xml( import_data, columns )
|
150
153
|
|
151
154
|
result = send_request( :importFromCSV, db_id, nil, xml )
|
152
155
|
result.css('rid').map{ |xml_node| xml_node.text.to_i }
|
@@ -280,8 +283,7 @@ module AdvantageQuickbase
|
|
280
283
|
def build_request_xml( tags )
|
281
284
|
xml = '<qdbapi>'
|
282
285
|
xml += tags.map{ |name, value| "<#{name}>#{value}</#{name}>" }.join()
|
283
|
-
xml +=
|
284
|
-
xml += "<apptoken>#{@app_token}</apptoken>"
|
286
|
+
xml += ticket_and_token
|
285
287
|
xml += '</qdbapi>'
|
286
288
|
end
|
287
289
|
|
@@ -302,8 +304,7 @@ module AdvantageQuickbase
|
|
302
304
|
end
|
303
305
|
|
304
306
|
xml += new_values.join()
|
305
|
-
xml +=
|
306
|
-
xml += "<apptoken>#{@app_token}</apptoken>"
|
307
|
+
xml += ticket_and_token
|
307
308
|
xml += '</qdbapi>'
|
308
309
|
end
|
309
310
|
|
@@ -319,16 +320,29 @@ module AdvantageQuickbase
|
|
319
320
|
end
|
320
321
|
|
321
322
|
def build_csv_xml( new_values, fields_to_import )
|
323
|
+
csv_data = []
|
324
|
+
new_values.each do |line|
|
325
|
+
if line.is_a?( Array )
|
326
|
+
csv_data << CSV.generate_line( line )
|
327
|
+
elsif line.is_a?( Hash )
|
328
|
+
csv_data << CSV.generate_line( line.map{ |k, v| v } )
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
322
332
|
xml = '<qdbapi>'
|
323
333
|
xml += "<records_csv><![CDATA[\n"
|
324
|
-
xml +=
|
334
|
+
xml += csv_data.join()
|
325
335
|
xml += "]]></records_csv>"
|
326
336
|
xml += "<clist>#{fields_to_import}</clist>"
|
327
|
-
xml +=
|
328
|
-
xml += "<apptoken>#{@app_token}</apptoken>"
|
337
|
+
xml += ticket_and_token
|
329
338
|
xml += '</qdbapi>'
|
330
339
|
end
|
331
340
|
|
341
|
+
def ticket_and_token
|
342
|
+
"<ticket>#{@ticket}</ticket>" +
|
343
|
+
"<apptoken>#{@app_token}</apptoken>"
|
344
|
+
end
|
345
|
+
|
332
346
|
def parse_xml( xml )
|
333
347
|
Nokogiri::HTML( xml )
|
334
348
|
end
|
data/lib/user.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module AdvantageQuickbase
|
2
2
|
class API
|
3
3
|
module User
|
4
|
-
def get_user_info(email)
|
4
|
+
def get_user_info( email )
|
5
5
|
user = send_request( :GetUserInfo, "main", { :email => email })
|
6
6
|
user = {
|
7
7
|
:id => get_attr_value(user.css("user"), :id),
|
@@ -14,18 +14,23 @@ module AdvantageQuickbase
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def get_user_role(db_id, user_id)
|
17
|
-
roles = []
|
18
17
|
result = send_request(:GetUserRole, db_id, { :userid => user_id })
|
19
18
|
|
19
|
+
user = {
|
20
|
+
id: get_attr_value( result.css('user'), :id ),
|
21
|
+
name: get_tag_value( result, :name ),
|
22
|
+
roles: []
|
23
|
+
}
|
24
|
+
|
20
25
|
result.css( 'role' ).each do |role|
|
21
|
-
roles <<
|
22
|
-
:id => get_attr_value(role, :id),
|
23
|
-
:name => get_tag_value(role, :name),
|
24
|
-
:type => get_tag_value(role, :access )
|
26
|
+
user[ :roles ] << {
|
27
|
+
:id => get_attr_value( role, :id ),
|
28
|
+
:name => get_tag_value( role, :name ),
|
29
|
+
:type => get_tag_value( role, :access )
|
25
30
|
}
|
26
31
|
end
|
27
32
|
|
28
|
-
|
33
|
+
user
|
29
34
|
end
|
30
35
|
|
31
36
|
def add_user_to_role(db_id, user_id, role_id)
|
@@ -44,7 +49,7 @@ module AdvantageQuickbase
|
|
44
49
|
options = {
|
45
50
|
:email => email,
|
46
51
|
:roleid => role_id,
|
47
|
-
:first_name => first_name,
|
52
|
+
:first_name => first_name,
|
48
53
|
:last_name => last_name
|
49
54
|
}
|
50
55
|
|
@@ -64,9 +69,9 @@ module AdvantageQuickbase
|
|
64
69
|
|
65
70
|
def remove_access(db_id, email)
|
66
71
|
user = self.get_user_info(email)
|
67
|
-
|
72
|
+
user_roles = get_user_role(db_id, user[:id])
|
68
73
|
|
69
|
-
roles.each do |role|
|
74
|
+
user_roles[:roles].each do |role|
|
70
75
|
self.remove_user_from_role(db_id, user[:id], role[:id])
|
71
76
|
end
|
72
77
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: advantage_quickbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|