Sha256: 92821cab8d2715dd7175a6eb242a837b89782412e78d0147ac6b55c490b9a1d3

Contents?: true

Size: 1.06 KB

Versions: 13

Compression:

Stored size: 1.06 KB

Contents

module SalesforceStreamer
  class SalesforceClient
    def initialize(client: Restforce.new)
      @client = client
    end

    def authenticate!
      @client.authenticate!
    end

    def subscribe(*args)
      @client.subscribe(args) do
        yield
      end
    end

    # Returns nil or an instance of Restforce::SObject
    def find_push_topic_by_name(name)
      query = QUERY.dup.gsub(/\s+/, ' ').gsub('{{NAME}}', name)
      @client.query(query).first
    end

    # Returns true or raises an exception if the upsert fails
    def upsert_push_topic(push_topic)
      @client.upsert!(
        'PushTopic', :Id,
        'Id' => push_topic.id,
        'Name' => push_topic.name,
        'ApiVersion' => push_topic.api_version,
        'Description' => push_topic.description,
        'NotifyForFields' => push_topic.notify_for_fields,
        'Query' => push_topic.query
      )
    end

    QUERY = <<~SOQL.chomp.freeze
      SELECT Id, Name, ApiVersion, Description, NotifyForFields, Query, isActive
      FROM PushTopic
      WHERE Name = '{{NAME}}'
    SOQL
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
salesforce_streamer-2.0.0 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-2.0.0.rc2 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-2.0.0.rc1 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.2.2 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.2.1 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.2.0 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.1.3 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.1.1 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.1.0 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-1.0.0 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-0.5.0 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-0.4.1 lib/salesforce_streamer/salesforce_client.rb
salesforce_streamer-0.4.0 lib/salesforce_streamer/salesforce_client.rb