class CommcareApi::CommcareConnector
Public Class Methods
new(user, password, version="0.5")
click to toggle source
# File lib/commcare_api.rb, line 12 def initialize(user, password, version="0.5") @user = user @password = password @version = "v#{version}" @last_response = nil @last_request = nil end
Public Instance Methods
get_application_structure(domain)
click to toggle source
# File lib/commcare_api.rb, line 73 def get_application_structure(domain) url = build_url(domain, "application", {}) get_request(url) end
get_case(domain, case_id, options = {})
click to toggle source
# File lib/commcare_api.rb, line 33 def get_case(domain, case_id, options = {}) url = build_url(domain, "case/#{case_id}", options) get_request(url) end
get_cases(domain, options = {})
click to toggle source
# File lib/commcare_api.rb, line 28 def get_cases(domain, options = {}) url = build_url(domain, "case", options) get_request(url) end
get_data_forwarding(domain)
click to toggle source
# File lib/commcare_api.rb, line 78 def get_data_forwarding(domain) url = build_url(domain, "data-forwarding", {}) get_request(url) end
get_fixture(domain, type)
click to toggle source
# File lib/commcare_api.rb, line 88 def get_fixture(domain, type) url = build_url(domain, "fixture", {fixture_type: type}) get_request(url) end
get_fixture_item(domain, item_id)
click to toggle source
# File lib/commcare_api.rb, line 93 def get_fixture_item(domain, item_id) url = build_url(domain, "fixture/#{item_id}", {}) get_request(url) end
get_fixtures(domain)
click to toggle source
# File lib/commcare_api.rb, line 83 def get_fixtures(domain) url = build_url(domain, "fixture", {}) get_request(url) end
get_form(domain, form_id, options = {})
click to toggle source
# File lib/commcare_api.rb, line 43 def get_form(domain, form_id, options = {}) url = build_url(domain, "form/#{form_id}", options) get_request(url) end
get_forms(domain, options = {})
click to toggle source
# File lib/commcare_api.rb, line 38 def get_forms(domain, options = {}) url = build_url(domain, "form", options) get_request(url) end
get_groups(domain, options = {})
click to toggle source
# File lib/commcare_api.rb, line 48 def get_groups(domain, options = {}) url = build_url(domain, "group", options) get_request(url) end
get_mobile_worker(domain, user_id, options = {})
click to toggle source
# File lib/commcare_api.rb, line 58 def get_mobile_worker(domain, user_id, options = {}) url = build_url(domain, "user/#{user_id}", options) get_request(url) end
get_mobile_workers(domain, options = {})
click to toggle source
# File lib/commcare_api.rb, line 53 def get_mobile_workers(domain, options = {}) url = build_url(domain, "user", options) get_request(url) end
get_next_data()
click to toggle source
# File lib/commcare_api.rb, line 20 def get_next_data get_contiguous_data("next") end
get_previous_data()
click to toggle source
# File lib/commcare_api.rb, line 24 def get_previous_data get_contiguous_data("previous") end
get_web_user(domain, user_id)
click to toggle source
# File lib/commcare_api.rb, line 68 def get_web_user(domain, user_id) url = build_url(domain, "web-user/#{user_id}", {}) get_request(url) end
get_web_users(domain)
click to toggle source
# File lib/commcare_api.rb, line 63 def get_web_users(domain) url = build_url(domain, "web-user", {}) get_request(url) end
Protected Instance Methods
build_url(domain, action, options)
click to toggle source
# File lib/commcare_api.rb, line 109 def build_url(domain, action, options) url = "#{CommcareApi::CC_BASE_URL}/#{domain}/api/#{@version}/#{action}/" options = options.map {|k,v| "#{k.to_s}=#{v}"}.join("&") url = "#{url}?#{options}" if !options.empty? url end
get_contiguous_data(direction)
click to toggle source
# File lib/commcare_api.rb, line 116 def get_contiguous_data(direction) return nil if @last_response.nil? j = JSON.parse(@last_response.body) return nil if j["meta"][direction].nil? @last_request.url.query = j["meta"][direction].gsub(/\?/, "") url = @last_request.url.to_s get_request(url) end
get_request(url)
click to toggle source
# File lib/commcare_api.rb, line 100 def get_request(url) request = HTTPI::Request.new(url) request.auth.digest(@user, @password) response = HTTPI.get(request, :httpclient) @last_response = response @last_request = request response end