quickbase_client 1.0.24 → 1.0.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/CHANGES +2 -0
- data/README.rdoc +3 -1
- data/lib/QuickBaseClient.rb +30 -32
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YjQ2ZDIyNjI5YzE5M2IzNzVjYjVkOTRjY2M4MjVhNWQ5NDZmNTdjNzZlOTBh
|
10
|
-
MmJlYzljOTgyNjFmMDI4ZmQwN2E4YjRlMmUzNTkzMmUxYmIwMzY0OTgzNWM3
|
11
|
-
NjQ5NzJlMTU0ZjYwYjI3YThlZjgyZGZhNDgxNjFlNzIyZTVhNDE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZjU4M2ExYjdjMGM4MmVlOWQ2MjA3ZmEyMDBjZGNlNWVhYTJkZWQzYmUxYjA1
|
14
|
-
NGM5MjBhYmIxMDEwN2FiOTUwMmZkN2Q5M2UyZmU2ZWQ2YWI0MjM3MDUwMGQy
|
15
|
-
ODhkYmM0NjdkY2Q2Nzg4OWNmYWVjNzRhMDU2MjNmYmVhNzA0YjU=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 714fce187692d8bb1b7cf91484a8c51da434b657
|
4
|
+
data.tar.gz: 2c5e045b86ca2413d648f05aaa90a9816e81f26a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0356a69b2e9e041ada7cff20eab5cea47b2307ac7d2837e94f53cc59afb5dd90a3b2f2205fc77af48f04a081c0b4b5230cce99d4c02c90fe040f1ab37736505a
|
7
|
+
data.tar.gz: 7fccba5e7ee75a48d5bbad2fee098ad28f0688403dbf0eeac6a4b84365db59a91114f045a30e54a8850a438674f791a19f3d0a642880ea5585ebd240e3e444ef
|
data/CHANGES
CHANGED
data/README.rdoc
CHANGED
@@ -28,6 +28,8 @@ More information about the QuickBase Client is available here -
|
|
28
28
|
|
29
29
|
== Change History
|
30
30
|
|
31
|
+
1.0.25 - 05/24/2017 - Merged in changes. See github.
|
32
|
+
|
31
33
|
1.0.24 - 03/15/2013 - Improved getRealmForDbid(dbid)
|
32
34
|
|
33
35
|
1.0.23 - 03/11/2013 - Added getRealmForDbid(dbid)
|
@@ -60,7 +62,7 @@ Please submit questions, feedback, suggestions on Intuit's Community Forum at ht
|
|
60
62
|
|
61
63
|
== License
|
62
64
|
|
63
|
-
Copyright (c) 2009-
|
65
|
+
Copyright (c) 2009-2013 Gareth Lewis
|
64
66
|
|
65
67
|
All rights reserved. This program and the accompanying materials
|
66
68
|
are made available under the terms of the Eclipse Public License v1.0
|
data/lib/QuickBaseClient.rb
CHANGED
@@ -15,6 +15,7 @@ require 'rexml/document'
|
|
15
15
|
require 'net/https'
|
16
16
|
require 'json'
|
17
17
|
require 'QuickBaseMisc'
|
18
|
+
require 'csv'
|
18
19
|
|
19
20
|
begin
|
20
21
|
require 'httpclient'
|
@@ -62,7 +63,7 @@ class Client
|
|
62
63
|
attr_reader :eventSubscribers, :logger
|
63
64
|
|
64
65
|
attr_writer :cacheSchemas, :apptoken, :escapeBR, :fvlist, :httpConnection, :ignoreCR, :ignoreLF, :ignoreTAB
|
65
|
-
attr_writer :printRequestsAndResponses, :qbhost, :stopOnError, :ticket, :udata, :rdr, :xsl, :encoding
|
66
|
+
attr_writer :printRequestsAndResponses, :qbhost, :stopOnError, :ticket, :udata, :rdr, :xsl, :encoding, :usertoken
|
66
67
|
|
67
68
|
=begin rdoc
|
68
69
|
'Plumbing' methods:
|
@@ -90,12 +91,14 @@ class Client
|
|
90
91
|
apptoken = nil,
|
91
92
|
debugHTTPConnection = false,
|
92
93
|
domain = "quickbase",
|
93
|
-
proxy_options = nil
|
94
|
+
proxy_options = nil,
|
95
|
+
usertoken = nil
|
94
96
|
)
|
95
97
|
begin
|
96
98
|
@org = org ? org : "www"
|
97
99
|
@domain = domain ? domain : "quickbase"
|
98
100
|
@apptoken = apptoken
|
101
|
+
@usertoken = usertoken
|
99
102
|
@printRequestsAndResponses = printRequestsAndResponses
|
100
103
|
@stopOnError = stopOnError
|
101
104
|
@escapeBR = @ignoreCR = @ignoreLF = @ignoreTAB = true
|
@@ -103,15 +106,12 @@ class Client
|
|
103
106
|
setHTTPConnectionAndqbhost( useSSL, org, domain, proxy_options )
|
104
107
|
debugHTTPConnection() if debugHTTPConnection
|
105
108
|
@standardRequestHeaders = { "Content-Type" => "application/xml" }
|
106
|
-
if username and password
|
107
|
-
authenticate( username, password )
|
108
109
|
if appname and @errcode == "0"
|
109
110
|
findDBByname( appname )
|
110
111
|
if @dbid and @errcode == "0"
|
111
112
|
getDBInfo( @dbid )
|
112
113
|
getSchema( @dbid )
|
113
114
|
end
|
114
|
-
end
|
115
115
|
end
|
116
116
|
rescue Net::HTTPBadRequest => @lastError
|
117
117
|
rescue Net::HTTPBadResponse => @lastError
|
@@ -145,7 +145,8 @@ class Client
|
|
145
145
|
options["apptoken"],
|
146
146
|
options["debugHTTPConnection"],
|
147
147
|
options["domain"],
|
148
|
-
options["proxy_options"]
|
148
|
+
options["proxy_options"],
|
149
|
+
options["usertoken"])
|
149
150
|
end
|
150
151
|
|
151
152
|
# Initializes the connection to QuickBase.
|
@@ -292,7 +293,7 @@ class Client
|
|
292
293
|
case api_Request
|
293
294
|
when :getAppDTMInfo
|
294
295
|
@dbidForRequestURL = "/db/main?a=#{:getAppDTMInfo}&dbid=#{@dbid}"
|
295
|
-
when :authenticate, :createDatabase, :deleteAppZip, :dumpAppZip, :getUserInfo, :findDBByname, :getOneTimeTicket, :getFileUploadToken, :grantedDBs, :installAppZip, :obStatus, :signOut
|
296
|
+
when :authenticate, :createDatabase, :deleteAppZip, :dumpAppZip, :getUserInfo, :findDBByname, :GrantedDBs, :getOneTimeTicket, :getFileUploadToken, :grantedDBs, :installAppZip, :obStatus, :signOut
|
296
297
|
@dbidForRequestURL = "/db/main"
|
297
298
|
end
|
298
299
|
end
|
@@ -301,12 +302,7 @@ class Client
|
|
301
302
|
# The XML includes a apptoken if one has been set.
|
302
303
|
def getAuthenticationXMLforRequest( api_Request )
|
303
304
|
@authenticationXML = ""
|
304
|
-
|
305
|
-
@authenticationXML = toXML( :ticket, @ticket )
|
306
|
-
elsif @username and @password
|
307
|
-
@authenticationXML = toXML( :username, @username ) + toXML( :password, @password )
|
308
|
-
end
|
309
|
-
@authenticationXML << toXML( :apptoken, @apptoken ) if @apptoken
|
305
|
+
@authenticationXML = toXML( :usertoken, @usertoken )
|
310
306
|
end
|
311
307
|
|
312
308
|
# Returns whether a request will return HTML rather than XML.
|
@@ -443,6 +439,19 @@ class Client
|
|
443
439
|
@fieldValue
|
444
440
|
end
|
445
441
|
|
442
|
+
#Gets a dbid at an Xpath in the XML from specified dbName of Quickbase
|
443
|
+
def getResponsePathValueByDBName ( path, dbName)
|
444
|
+
@fieldValue = ""
|
445
|
+
if path and @responseXMLdoc
|
446
|
+
e = @responseXMLdoc.root.elements[ path.to_s ]
|
447
|
+
end
|
448
|
+
e.each { |e|
|
449
|
+
if e and e.is_a?( REXML::Element ) and e.dbinfo.dbname == dbName
|
450
|
+
return e.dbinfo.dbid
|
451
|
+
end
|
452
|
+
}
|
453
|
+
@fieldValue
|
454
|
+
end
|
446
455
|
# Gets an array of elements at an Xpath in the XML from QuickBase.
|
447
456
|
def getResponseElements( path )
|
448
457
|
if path and @responseXMLdoc
|
@@ -1020,8 +1029,8 @@ class Client
|
|
1020
1029
|
resp = httpclient.get("https://www.quickbase.com/db/#{dbid}")
|
1021
1030
|
location = resp.header['Location'][0]
|
1022
1031
|
location.sub!("https://","")
|
1023
|
-
|
1024
|
-
|
1032
|
+
parts = location.split(/\./)
|
1033
|
+
@realm = parts[0]
|
1025
1034
|
rescue StandardError => error
|
1026
1035
|
@realm = nil
|
1027
1036
|
end
|
@@ -1495,20 +1504,8 @@ class Client
|
|
1495
1504
|
|
1496
1505
|
# Converts a string into an array, given a field separator.
|
1497
1506
|
# '"' followed by the field separator are treated the same way as just the field separator.
|
1498
|
-
def splitString(
|
1499
|
-
|
1500
|
-
string.chomp!
|
1501
|
-
if string.include?( "\"" )
|
1502
|
-
a=string.split( "\"#{fieldSeparator}" )
|
1503
|
-
a.each{ |b| c=b.split( "#{fieldSeparator}\"" )
|
1504
|
-
c.each{ |d|
|
1505
|
-
ra << d
|
1506
|
-
}
|
1507
|
-
}
|
1508
|
-
else
|
1509
|
-
ra = string.split( fieldSeparator )
|
1510
|
-
end
|
1511
|
-
ra
|
1507
|
+
def splitString(string, fieldSeparator = ",")
|
1508
|
+
CSV.parse(string, col_sep: fieldSeparator).shift
|
1512
1509
|
end
|
1513
1510
|
|
1514
1511
|
# Returns the URL-encoded version of a non-printing character.
|
@@ -2339,8 +2336,8 @@ class Client
|
|
2339
2336
|
@dbname = dbname
|
2340
2337
|
xmlRequestData = toXML( :dbname, @dbname )
|
2341
2338
|
|
2342
|
-
sendRequest( :
|
2343
|
-
@dbid =
|
2339
|
+
sendRequest( :GrantedDBs, xmlRequestData )
|
2340
|
+
@dbid = getResponsePathValueByDBName( 'databases', dbname )
|
2344
2341
|
|
2345
2342
|
return self if @chainAPIcalls
|
2346
2343
|
@dbid
|
@@ -3086,10 +3083,11 @@ class Client
|
|
3086
3083
|
# Use this if you aren't sure whether a particular record already exists or not
|
3087
3084
|
def addOrEditRecord( dbid, fvlist, rid = nil, disprec = nil, fform = nil, ignoreError = nil, update_id = nil, key = nil )
|
3088
3085
|
if rid or key
|
3089
|
-
editRecord( dbid, rid, fvlist, disprec, fform, ignoreError, update_id, key )
|
3086
|
+
record = editRecord( dbid, rid, fvlist, disprec, fform, ignoreError, update_id, key )
|
3090
3087
|
if !@requestSucceeded
|
3091
3088
|
addRecord( dbid, fvlist, disprec, fform, ignoreError, update_id )
|
3092
3089
|
end
|
3090
|
+
record
|
3093
3091
|
else
|
3094
3092
|
addRecord( dbid, fvlist, disprec, fform, ignoreError, update_id )
|
3095
3093
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quickbase_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gareth Lewis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Wraps the QuickBase HTTP API and adds classes and methods to minimize
|
14
14
|
the amount of code needed to get useful things done.
|
@@ -20,7 +20,7 @@ extra_rdoc_files:
|
|
20
20
|
- LICENSE
|
21
21
|
- README.rdoc
|
22
22
|
files:
|
23
|
-
- .yardopts
|
23
|
+
- ".yardopts"
|
24
24
|
- CHANGES
|
25
25
|
- LICENSE
|
26
26
|
- README.rdoc
|
@@ -32,12 +32,12 @@ licenses: []
|
|
32
32
|
metadata: {}
|
33
33
|
post_install_message:
|
34
34
|
rdoc_options:
|
35
|
-
- --line-numbers
|
36
|
-
- --inline-source
|
37
|
-
- --main
|
35
|
+
- "--line-numbers"
|
36
|
+
- "--inline-source"
|
37
|
+
- "--main"
|
38
38
|
- README.rdoc
|
39
|
-
- --title
|
40
|
-
-
|
39
|
+
- "--title"
|
40
|
+
- 'quickbase: Ruby client for database applications on www.quickbase.com'
|
41
41
|
- lib/QuickBaseClient.rb
|
42
42
|
- lib/QuickBaseMisc.rb
|
43
43
|
- lib/quickbase_client.rb
|
@@ -45,17 +45,17 @@ require_paths:
|
|
45
45
|
- lib
|
46
46
|
required_ruby_version: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- -
|
48
|
+
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: 1.8.6
|
51
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|
57
57
|
rubyforge_project: orphans
|
58
|
-
rubygems_version: 2.
|
58
|
+
rubygems_version: 2.6.12
|
59
59
|
signing_key:
|
60
60
|
specification_version: 4
|
61
61
|
summary: Ruby wrapper for the QuickBase HTTP API.
|