Sha256: 3f70c888f9657839bbbf8df86317f71f7eb24fbffea41368f44a6acd81d58ea4

Contents?: true

Size: 852 Bytes

Versions: 5

Compression:

Stored size: 852 Bytes

Contents

module SfConnect
  #
  # upload salesforce object attribute
  #
  module Uploader
    extend ActiveSupport::Concern

    def upload_to_salesforce
      self.class.update_salesforce_attributes(salesforce_object_id, upload_payload_for_salesforce)
    end

    def upload_payload_for_salesforce
      self.class.salesforce_fields.payload_for_upload(self)
    end

    class_methods do
      def upload_salesforce_record(**attributes)
        create_salesforce_record(
          salesforce_fields.payload_for_upload_from_hash(attributes)
        )
      end

      def create_salesforce_record(payload)
        SfConnect.create!(salesforce_object_name, payload)
      end

      def update_salesforce_attributes(id, payload)
        SfConnect.update!(
          salesforce_object_name,
          id,
          payload
        )
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sf_connect-0.2.4 lib/sf_connect/uploader.rb
sf_connect-0.2.3 lib/sf_connect/uploader.rb
sf_connect-0.2.2 lib/sf_connect/uploader.rb
sf_connect-0.2.1 lib/sf_connect/uploader.rb
sf_connect-0.2.0 lib/sf_connect/uploader.rb