Sha256: efb7b71f28f744fc52af3bba8780bd3098fedae2c12700eb331e34146f45e97a

Contents?: true

Size: 990 Bytes

Versions: 1

Compression:

Stored size: 990 Bytes

Contents

require_relative "sf_connect/version"
require "active_support/all"

#
# salesforce connective object
#
module SfConnect
  extend ActiveSupport::Autoload
  autoload :Define
  autoload :Fields
  autoload :Uploader
  autoload :Downloader

  # upload and download payload
  Payload = Struct.new(:record, :for_upload, :for_download, keyword_init: true)

  class << self
    def define(salesforce_object_name, where: nil, **fields, &)
      SfConnect::Define.new(salesforce_object_name, where:, fields:, &).call
    end

    def query(soql)
      Restforce.new.query(soql)
    end

    def find(salesforce_object_name, id, field)
      Restforce.new.find(salesforce_object_name, id, field)
    end

    def create!(salesforce_object_name, payload)
      Restforce.new.create!(
        salesforce_object_name, payload
      )
    end

    def update!(salesforce_object_name, id, payload)
      Restforce.new.update!(
        salesforce_object_name, { Id: id, **payload }
      )
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sf_connect-0.2.0 lib/sf_connect.rb