Sha256: 2d73f869553f0098ec79bdac57818a0f8d23916a657232ee8855375fb45f9bba

Contents?: true

Size: 1.36 KB

Versions: 4

Compression:

Stored size: 1.36 KB

Contents

module Pardot
  module Objects
    module ProspectAccounts
      def prospect_accounts
        @prospect_accounts ||= ProspectAccounts.new self
      end

      class ProspectAccounts
        def initialize(client)
          @client = client
        end

        def query(search_criteria)
          result = get '/do/query', search_criteria, 'result'
          result['total_results'] = result['total_results'].to_i if
            result['total_results']
          result
        end

        def describe(params = {})
          post('/do/describe', params)
        end

        def create(params = {})
          post('/do/create', params)
        end

        # read_by_id
        # update_by_id
        %i[read update].each do |verb|
          define_method(verb) do |id, params = {}|
            post(api_url(verb, 'id', id), params)
          end
        end

        private

        def api_url(verb, direct_to, value)
          "/do/#{verb}/#{direct_to}/#{value}"
        end

        def get(path, params = {}, result = 'prospectAccount')
          response = @client.get('prospectAccount', path, params)
          result ? response[result] : response
        end

        def post(path, params = {}, result = 'prospectAccount')
          response = @client.post('prospectAccount', path, params)
          result ? response[result] : response
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-pardot-1.4.3 lib/pardot/objects/prospect_accounts.rb
ruby-pardot-1.4.2 lib/pardot/objects/prospect_accounts.rb
ruby-pardot-1.4.1 lib/pardot/objects/prospect_accounts.rb
ruby-pardot-1.4.0 lib/pardot/objects/prospect_accounts.rb