module Executrix::Http
Public Instance Methods
add_batch(*args)
click to toggle source
# File lib/executrix/http.rb, line 24 def add_batch *args r = Http::Request.add_batch(*args) process_xml_response(nori.parse(process_http_request(r))) end
add_file_upload_batch(instance, session_id, job_id, data, api_version)
click to toggle source
# File lib/executrix/http.rb, line 44 def add_file_upload_batch instance, session_id, job_id, data, api_version headers = { 'Content-Type' => 'zip/csv', 'X-SFDC-Session' => session_id} r = Http::Request.new( :post, Http::Request.generic_host(instance), "/services/async/#{api_version}/job/#{job_id}/batch", data, headers) process_xml_response(nori.parse(process_http_request(r))) end
close_job(*args)
click to toggle source
# File lib/executrix/http.rb, line 19 def close_job *args r = Http::Request.close_job(*args) process_xml_response(nori.parse(process_http_request(r))) end
create_job(*args)
click to toggle source
# File lib/executrix/http.rb, line 14 def create_job *args r = Http::Request.create_job(*args) process_xml_response(nori.parse(process_http_request(r))) end
login(*args)
click to toggle source
# File lib/executrix/http.rb, line 9 def login *args r = Http::Request.login(*args) process_soap_response(nori.parse(process_http_request(r))) end
process_http_request(r)
click to toggle source
# File lib/executrix/http.rb, line 57 def process_http_request(r) http = Net::HTTP.new(r.host, 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http_request = Net::HTTP. const_get(r.http_method.capitalize). new(r.path, r.headers) http_request.body = r.body if r.body http.request(http_request).body end
query_batch(*args)
click to toggle source
# File lib/executrix/http.rb, line 29 def query_batch *args r = Http::Request.query_batch(*args) process_xml_response(nori.parse(process_http_request(r))) end
query_batch_result_data(*args)
click to toggle source
# File lib/executrix/http.rb, line 39 def query_batch_result_data *args r = Http::Request.query_batch_result_data(*args) normalize_csv(process_http_request(r)) end
query_batch_result_id(*args)
click to toggle source
# File lib/executrix/http.rb, line 34 def query_batch_result_id *args r = Http::Request.query_batch_result_id(*args) process_xml_response(nori.parse(process_http_request(r))) end
Private Instance Methods
nori()
click to toggle source
# File lib/executrix/http.rb, line 69 def nori Nori.new( :advanced_typecasting => true, :strip_namespaces => true, :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }) end
normalize_csv(res)
click to toggle source
# File lib/executrix/http.rb, line 84 def normalize_csv res res.gsub(/\n\s+/, "\n") end
process_soap_response(res)
click to toggle source
# File lib/executrix/http.rb, line 88 def process_soap_response res raw_result = res.fetch(:body){res.fetch(:envelope).fetch(:body)} raise raw_result[:fault][:faultstring] if raw_result[:fault] login_result = raw_result[:login_response][:result] instance = Helper.fetch_instance_from_server_url(login_result[:server_url]) login_result.merge(instance: instance) end
process_xml_response(res)
click to toggle source
# File lib/executrix/http.rb, line 76 def process_xml_response res if res[:error] raise "#{res[:error][:exception_code]}: #{res[:error][:exception_message]}" end res.values.first end