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