Sha256: 62d1d441883a558c6da4229b81a0bb10f8e13ee3c42422cedfee1bd1567bc91e

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

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

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

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

    def connect
      yield Restforce.new
    end

    def query(soql)
      connect { |restforce| restforce.query(soql) }
    end

    def find(salesforce_object_name, id, field)
      connect { |restforce| restforce.find(salesforce_object_name, id, field) }
    end

    def create!(salesforce_object_name, payload)
      connect do |restforce|
        restforce.create!(
          salesforce_object_name, payload
        )
      end
    end

    def update!(salesforce_object_name, id, payload)
      connect do |restforce|
        restforce.update!(
          salesforce_object_name, { Id: id, **payload }
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sf_connect-0.2.4 lib/sf_connect.rb
sf_connect-0.2.3 lib/sf_connect.rb