executrix 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/executrix/batch.rb +10 -0
- data/lib/executrix/connection.rb +9 -3
- data/lib/executrix/helper.rb +4 -0
- data/lib/executrix/http.rb +4 -5
- data/lib/executrix/version.rb +1 -1
- data/spec/lib/executrix/batch_spec.rb +14 -0
- data/spec/lib/executrix/connection_spec.rb +1 -0
- data/spec/lib/executrix/helper_spec.rb +17 -0
- data/spec/lib/executrix/http_spec.rb +4 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adbfe678d21169065c727f7b0f11e9871398a5f8
|
4
|
+
data.tar.gz: 4d5baaf178dc01c99abf9e653aeadba6633d9576
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cfc598c3a8448f4a3efd3bf378d50b8ea2aa98827dfb3ecce236d685d1ac6cd51cf2445e073ccd91fe8a7bfc49ceff5bb679d37237449ecbf6cb83688577705
|
7
|
+
data.tar.gz: 12ff55f6dad093df4ca29a8d5e835b1ce3e58c869b52490df0ceb80b805d91f1f95450a567266489281b60a4a7cf1debb8de23da1f205c2a3234d59166fe87a8
|
data/lib/executrix/batch.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Executrix
|
2
2
|
class Batch
|
3
|
+
attr_reader :job_id
|
4
|
+
|
3
5
|
def initialize connection, job_id, batch_id
|
4
6
|
@connection = connection
|
5
7
|
@job_id = job_id
|
@@ -39,6 +41,14 @@ module Executrix
|
|
39
41
|
@connection.query_batch_result_data(@job_id, @batch_id, @result_id)
|
40
42
|
end
|
41
43
|
|
44
|
+
def raw_request
|
45
|
+
@connection.raw_request
|
46
|
+
end
|
47
|
+
|
48
|
+
def raw_result
|
49
|
+
@connection.raw_result
|
50
|
+
end
|
51
|
+
|
42
52
|
private
|
43
53
|
def init_result_id
|
44
54
|
result_raw = @connection.query_batch_result_id(@job_id, @batch_id)
|
data/lib/executrix/connection.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module Executrix
|
2
2
|
class Connection
|
3
|
+
attr_reader :raw_request
|
4
|
+
attr_reader :raw_result
|
5
|
+
|
3
6
|
def initialize(username, password, api_version, sandbox)
|
4
7
|
@username = username
|
5
8
|
@password = password
|
@@ -73,7 +76,7 @@ module Executrix
|
|
73
76
|
end
|
74
77
|
|
75
78
|
def query_batch_result_data job_id, batch_id, result_id
|
76
|
-
Executrix::Http.query_batch_result_data(
|
79
|
+
@raw_result = Executrix::Http.query_batch_result_data(
|
77
80
|
@instance,
|
78
81
|
@session_id,
|
79
82
|
job_id,
|
@@ -81,25 +84,28 @@ module Executrix
|
|
81
84
|
result_id,
|
82
85
|
@api_version,
|
83
86
|
)
|
87
|
+
Executrix::Helper.parse_csv @raw_result
|
84
88
|
end
|
85
89
|
|
86
90
|
def add_file_upload_batch job_id, filename
|
91
|
+
@raw_request = File.read(filename)
|
87
92
|
Executrix::Http.add_file_upload_batch(
|
88
93
|
@instance,
|
89
94
|
@session_id,
|
90
95
|
job_id,
|
91
|
-
|
96
|
+
@raw_request,
|
92
97
|
@api_version)[:id]
|
93
98
|
end
|
94
99
|
|
95
100
|
def add_batch job_id, records
|
96
101
|
return -1 if records.nil? || records.empty?
|
102
|
+
@raw_request = Executrix::Helper.records_to_csv(records)
|
97
103
|
|
98
104
|
Executrix::Http.add_batch(
|
99
105
|
@instance,
|
100
106
|
@session_id,
|
101
107
|
job_id,
|
102
|
-
|
108
|
+
@raw_request,
|
103
109
|
@api_version)[:id]
|
104
110
|
end
|
105
111
|
|
data/lib/executrix/helper.rb
CHANGED
data/lib/executrix/http.rb
CHANGED
@@ -38,11 +38,10 @@ module Executrix
|
|
38
38
|
|
39
39
|
def query_batch_result_data *args
|
40
40
|
r = Http::Request.query_batch_result_data(*args)
|
41
|
-
|
41
|
+
normalize_csv(process_http_request(r))
|
42
42
|
end
|
43
43
|
|
44
|
-
def add_file_upload_batch instance, session_id, job_id,
|
45
|
-
data = File.read(filename)
|
44
|
+
def add_file_upload_batch instance, session_id, job_id, data, api_version
|
46
45
|
headers = {
|
47
46
|
'Content-Type' => 'zip/csv',
|
48
47
|
'X-SFDC-Session' => session_id}
|
@@ -82,8 +81,8 @@ module Executrix
|
|
82
81
|
res.values.first
|
83
82
|
end
|
84
83
|
|
85
|
-
def
|
86
|
-
|
84
|
+
def normalize_csv res
|
85
|
+
res.gsub(/\n\s+/, "\n")
|
87
86
|
end
|
88
87
|
|
89
88
|
def process_soap_response res
|
data/lib/executrix/version.rb
CHANGED
@@ -56,4 +56,18 @@ describe Executrix::Batch do
|
|
56
56
|
.to raise_error(StandardError, expected_error_message)
|
57
57
|
end
|
58
58
|
end
|
59
|
+
|
60
|
+
[:request, :result].each do |action|
|
61
|
+
let(:connection) { double('Executrix::Connection') }
|
62
|
+
let(:request_result) { 'Generic Result/Request' }
|
63
|
+
describe "#raw_#{action}" do
|
64
|
+
|
65
|
+
it 'sends correct messages to connection' do
|
66
|
+
b = described_class.new nil, nil, nil
|
67
|
+
b.instance_variable_set '@connection', connection
|
68
|
+
expect(connection).to receive(:"raw_#{action}").and_return(request_result)
|
69
|
+
expect(b.send(:"raw_#{action}")).to eq(request_result)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
59
73
|
end
|
@@ -14,6 +14,7 @@ describe Executrix::Connection do
|
|
14
14
|
}.each do |method_name, num_of_params|
|
15
15
|
describe "##{method_name}" do
|
16
16
|
it 'delegates correctly to Http class' do
|
17
|
+
allow(Executrix::Helper).to receive(:parse_csv).and_return([])
|
17
18
|
expect(Executrix::Http)
|
18
19
|
.to receive(method_name)
|
19
20
|
.and_return({})
|
@@ -217,4 +217,21 @@ describe Executrix::Helper do
|
|
217
217
|
to eq('a/forwardslash/path')
|
218
218
|
end
|
219
219
|
end
|
220
|
+
|
221
|
+
describe '.parse_csv' do
|
222
|
+
let(:csv_string) {
|
223
|
+
"Id,my_external_id__c\n" \
|
224
|
+
"003M000057GH39aIAD,K-00J799\n" \
|
225
|
+
"003M001200KO82cIAD,K-015699"
|
226
|
+
}
|
227
|
+
let(:expected_result) {
|
228
|
+
[
|
229
|
+
{ 'Id' => '003M000057GH39aIAD', 'my_external_id__c' => 'K-00J799' },
|
230
|
+
{ 'Id' => '003M001200KO82cIAD', 'my_external_id__c' => 'K-015699' },
|
231
|
+
]
|
232
|
+
}
|
233
|
+
it 'correctly transforms csv string' do
|
234
|
+
expect(described_class.parse_csv(csv_string)).to eq(expected_result)
|
235
|
+
end
|
236
|
+
end
|
220
237
|
end
|
@@ -317,22 +317,18 @@ describe Executrix::Http do
|
|
317
317
|
"003K001200KO82cIAD","King of the Hill"}
|
318
318
|
end
|
319
319
|
|
320
|
-
it 'returns
|
320
|
+
it 'returns a correctly formatted CSV string' do
|
321
321
|
expect(Executrix::Http).to receive(:process_http_request)
|
322
322
|
.and_return(batch_result_data_success)
|
323
323
|
result = Executrix::Http.query_batch_result_data('a','b','c','d','e','f')
|
324
|
-
expect(result).to eq(
|
325
|
-
{'Id' => '003M000057GH39aIAD', 'my_external_id__c' => 'K-00J799'},
|
326
|
-
{'Id' => '003M001200KO82cIAD', 'my_external_id__c' => 'K-015699'}])
|
324
|
+
expect(result).to eq(batch_result_data_success.gsub(/^\s+/, ''))
|
327
325
|
end
|
328
326
|
|
329
|
-
it 'returns
|
327
|
+
it 'returns a correctly formatted CSV string including spaces' do
|
330
328
|
expect(Executrix::Http).to receive(:process_http_request)
|
331
329
|
.and_return(batch_result_data_with_spaces_success)
|
332
330
|
result = Executrix::Http.query_batch_result_data('a','b','c','d','e','f')
|
333
|
-
expect(result).to eq(
|
334
|
-
{'Id' => '003K000057GH39aIAD', 'Name' => 'Master of Disaster'},
|
335
|
-
{'Id' => '003K001200KO82cIAD', 'Name' => 'King of the Hill'}])
|
331
|
+
expect(result).to eq(batch_result_data_with_spaces_success.gsub(/^\s+/, ''))
|
336
332
|
end
|
337
333
|
end
|
338
334
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: executrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jorge Valdivia
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|