Class: SalesforceChunker::ManualChunkingBreakpointQuery
- Inherits:
-
Job
- Object
- Job
- SalesforceChunker::ManualChunkingBreakpointQuery
show all
- Defined in:
- lib/salesforce_chunker/manual_chunking_breakpoint_query.rb
Constant Summary
Constants inherited
from Job
Job::DEFAULT_RETRY_SECONDS, Job::DEFAULT_TIMEOUT_SECONDS, Job::QUERY_OPERATIONS
Instance Attribute Summary
Attributes inherited from Job
#batches_count
Instance Method Summary
collapse
Methods inherited from Job
#close, #download_results, #get_completed_batches, #retrieve_raw_results, #retrieve_results
Constructor Details
#initialize(connection:, object:, operation:, query:, **options) ⇒ ManualChunkingBreakpointQuery
Returns a new instance of ManualChunkingBreakpointQuery.
4
5
6
7
8
9
10
11
12
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 4
def initialize(connection:, object:, operation:, query:, **options)
@batch_size = options[:batch_size] || 100000
super(connection: connection, object: object, operation: operation, **options)
create_batch(query)
@batches_count = 1
close
end
|
Instance Method Details
#create_batch(payload) ⇒ Object
37
38
39
40
41
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 37
def create_batch(payload)
@log.info "Creating Id Batch: \"#{payload.gsub(/\n/, " ").strip}\""
response = @connection.post("job/#{@job_id}/batch", payload.to_s, {"Content-Type": "text/csv"})
response["batchInfo"]["id"]
end
|
#create_job(object, options) ⇒ Object
58
59
60
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 58
def create_job(object, options)
super(object, options.merge(content_type: "CSV"))
end
|
#get_batch_results(batch_id) ⇒ Object
14
15
16
17
18
19
20
21
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 14
def get_batch_results(batch_id)
retrieve_batch_results(batch_id).each_with_index do |result_id, result_index|
results = retrieve_raw_results(batch_id, result_id)
@log.info "Generating breakpoints from CSV results"
process_csv_results(results, result_index > 0) { |result| yield result }
end
end
|
#get_batch_statuses ⇒ Object
53
54
55
56
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 53
def get_batch_statuses
[@connection.get_json("job/#{@job_id}/batch")["batchInfoList"]["batchInfo"]]
end
|
#process_csv_results(input, include_first_element) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 23
def process_csv_results(input, include_first_element)
lines = input.each_line
= lines.next
yield(lines.peek.chomp.gsub("\"", "")) if include_first_element
loop do
@batch_size.times { lines.next }
yield(lines.peek.chomp.gsub("\"", ""))
end
rescue StopIteration
nil
end
|
#retrieve_batch_results(batch_id) ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'lib/salesforce_chunker/manual_chunking_breakpoint_query.rb', line 43
def retrieve_batch_results(batch_id)
response = super(batch_id)
if response["result_list"]["result"].is_a? Array
response["result_list"]["result"]
else
[response["result_list"]["result"]]
end
end
|