class Quickbase::API
Attributes
connection[RW]
Public Class Methods
new(connection)
click to toggle source
# File lib/classes/api.rb 5 def initialize(connection) 6 @connection = connection 7 end
Public Instance Methods
add_record(fields)
click to toggle source
Documentation at www.quickbase.com/api-guide/add_record.html
# File lib/classes/api.rb 42 def add_record(fields) 43 fields = Quickbase::Helper.generate_fields(fields) 44 connection.http.post("API_AddRecord", fields) 45 end
delete_record(rid)
click to toggle source
Documentation at www.quickbase.com/api-guide/delete_record.html
# File lib/classes/api.rb 55 def delete_record(rid) 56 tags = Quickbase::Helper.hash_to_xml({:rid => rid.to_s}) 57 connection.http.post("API_DeleteRecord", tags) 58 end
do_query(params)
click to toggle source
Documentation at www.quickbase.com/api-guide/do_query.html
# File lib/classes/api.rb 10 def do_query(params) 11 params[:fmt] = 'structured' if params[:fmt].nil? or params[:fmt].empty? 12 clist = params[:clist].to_s.split(".") 13 friendly = params[:friendly].to_s.split(".") 14 keys = friendly.empty? ? clist : friendly.map(&:to_sym) 15 response = connection.http.post("API_DoQuery", Quickbase::Helper.hash_to_xml(params)) 16 array_of_records = response.xpath("//record[@type='array']/record") 17 records = array_of_records.empty? ? response.xpath("//record") : array_of_records 18 return [] if records.empty? 19 20 records.map do |record| 21 array_of_fields = record.xpath("f[@type='array']/f") 22 fields = array_of_fields.empty? ? record.xpath("f") : array_of_fields 23 Hash[fields.to_enum(:each_with_index).collect { |field,index| 24 field_val = "" 25 field_val_xpath = field.xpath("__content__").first 26 field_val = field_val_xpath.content unless field_val_xpath.nil? 27 Hash[keys[index],field_val] 28 }.map(&:flatten)] 29 end 30 end
do_query_return_nokogiri_obj(params)
click to toggle source
# File lib/classes/api.rb 32 def do_query_return_nokogiri_obj(params) 33 #useful method for debugging 34 params[:fmt] = 'structured' if params[:fmt].nil? or params[:fmt].empty? 35 clist = params[:clist].to_s.split(".") 36 friendly = params[:friendly].to_s.split(".") 37 keys = friendly.empty? ? clist : friendly.map(&:to_sym) 38 connection.http.post("API_DoQuery", Quickbase::Helper.hash_to_xml(params)) 39 end
edit_record(rid, fields)
click to toggle source
Documentation at www.quickbase.com/api-guide/edit_record.html
# File lib/classes/api.rb 48 def edit_record(rid, fields) 49 tags = Quickbase::Helper.generate_fields(fields) 50 tags << Quickbase::Helper.hash_to_xml({:rid => rid.to_s}) 51 connection.http.post("API_EditRecord", tags) 52 end