Class: Executrix::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/executrix/connection.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username, password, api_version, sandbox) ⇒ Connection

Returns a new instance of Connection.



6
7
8
9
10
11
# File 'lib/executrix/connection.rb', line 6

def initialize(username, password, api_version, sandbox)
  @username = username
  @password = password
  @api_version = api_version
  @sandbox = sandbox
end

Instance Attribute Details

#raw_requestObject (readonly)

Returns the value of attribute raw_request.



3
4
5
# File 'lib/executrix/connection.rb', line 3

def raw_request
  @raw_request
end

#raw_resultObject (readonly)

Returns the value of attribute raw_result.



4
5
6
# File 'lib/executrix/connection.rb', line 4

def raw_result
  @raw_result
end

Class Method Details

.connect(username, password, api_version, sandbox) ⇒ Object



112
113
114
# File 'lib/executrix/connection.rb', line 112

def self.connect(username, password, api_version, sandbox)
  self.new(username, password, api_version, sandbox).
end

Instance Method Details

#add_batch(job_id, records) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
# File 'lib/executrix/connection.rb', line 100

def add_batch job_id, records
  return -1 if records.nil? || records.empty?
  @raw_request = Executrix::Helper.records_to_csv(records)

  Executrix::Http.add_batch(
    @instance,
    @session_id,
    job_id,
    @raw_request,
    @api_version)[:id]
end

#add_file_upload_batch(job_id, filename) ⇒ Object



90
91
92
93
94
95
96
97
98
# File 'lib/executrix/connection.rb', line 90

def add_file_upload_batch job_id, filename
  @raw_request = File.read(filename)
  Executrix::Http.add_file_upload_batch(
    @instance,
    @session_id,
    job_id,
    @raw_request,
    @api_version)[:id]
end

#add_query(job_id, data_or_soql) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/executrix/connection.rb', line 49

def add_query job_id, data_or_soql
  Executrix::Http.add_batch(
    @instance,
    @session_id,
    job_id,
    data_or_soql,
    @api_version)[:id]
end

#close_job(job_id) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/executrix/connection.rb', line 41

def close_job job_id
  Executrix::Http.close_job(
    @instance,
    @session_id,
    job_id,
    @api_version)[:id]
end

#create_job(operation, sobject, content_type, external_field) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/executrix/connection.rb', line 30

def create_job operation, sobject, content_type, external_field
  Executrix::Http.create_job(
    @instance,
    @session_id,
    operation,
    sobject,
    content_type,
    @api_version,
    external_field)[:id]
end

#loginObject



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/executrix/connection.rb', line 13

def 
  response = Executrix::Http.(
    @sandbox,
    @username,
    @password,
    @api_version)

  @session_id = response[:session_id]
  @instance = response[:instance]
  self
end

#org_idObject



25
26
27
28
# File 'lib/executrix/connection.rb', line 25

def org_id
  raise 'please login first' unless @session_id
  @session_id.split('!').first
end

#query_batch(job_id, batch_id) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/executrix/connection.rb', line 58

def query_batch job_id, batch_id
  Executrix::Http.query_batch(
    @instance,
    @session_id,
    job_id,
    batch_id,
    @api_version,
  )
end

#query_batch_result_data(job_id, batch_id, result_id) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/executrix/connection.rb', line 78

def query_batch_result_data job_id, batch_id, result_id
  @raw_result = Executrix::Http.query_batch_result_data(
    @instance,
    @session_id,
    job_id,
    batch_id,
    result_id,
    @api_version,
  )
  Executrix::Helper.parse_csv @raw_result
end

#query_batch_result_id(job_id, batch_id) ⇒ Object



68
69
70
71
72
73
74
75
76
# File 'lib/executrix/connection.rb', line 68

def query_batch_result_id job_id, batch_id
  Executrix::Http.query_batch_result_id(
    @instance,
    @session_id,
    job_id,
    batch_id,
    @api_version,
  )
end