Class: Remi::DataTarget::Salesforce
- Inherits:
-
Object
- Object
- Remi::DataTarget::Salesforce
- Includes:
- Remi::DataTarget
- Defined in:
- lib/remi/data_target/salesforce.rb
Instance Method Summary collapse
- #df_as_array_of_hashes ⇒ Object
- #field_symbolizer ⇒ Object
-
#initialize(object:, operation:, credentials:, api: :bulk, logger: Remi::Settings.logger) ⇒ Salesforce
constructor
A new instance of Salesforce.
- #load ⇒ Object
- #restforce_client ⇒ Object
Methods included from Remi::DataSubject
Constructor Details
#initialize(object:, operation:, credentials:, api: :bulk, logger: Remi::Settings.logger) ⇒ Salesforce
Returns a new instance of Salesforce.
6 7 8 9 10 11 12 |
# File 'lib/remi/data_target/salesforce.rb', line 6 def initialize(object:, operation:, credentials:, api: :bulk, logger: Remi::Settings.logger) @sfo = object @operation = operation @credentials = credentials @api = api @logger = logger end |
Instance Method Details
#df_as_array_of_hashes ⇒ Object
43 44 45 |
# File 'lib/remi/data_target/salesforce.rb', line 43 def df_as_array_of_hashes df.to_a[0] end |
#field_symbolizer ⇒ Object
14 15 16 |
# File 'lib/remi/data_target/salesforce.rb', line 14 def field_symbolizer Remi::FieldSymbolizers[:salesforce] end |
#load ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/remi/data_target/salesforce.rb', line 18 def load return true if @loaded || df.size == 0 @logger.info "Performing Salesforce #{@operation} on object #{@sfo}" if @operation == :update Remi::SfBulkHelper::SfBulkUpdate.update(restforce_client, @sfo, df_as_array_of_hashes, logger: @logger) elsif @operation == :create Remi::SfBulkHelper::SfBulkCreate.create(restforce_client, @sfo, df_as_array_of_hashes, logger: @logger) end @loaded = true end |
#restforce_client ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/remi/data_target/salesforce.rb', line 32 def restforce_client @restforce_client ||= begin client = Restforce.new(@credentials) #run a dummy query to initiate a connection. Workaround for Bulk API problem # https://github.com/yatish27/salesforce_bulk_api/issues/33 client.query('SELECT Id FROM Contact LIMIT 1') client end end |