class Qualtrics::Distribution

Attributes

emails_bounced[RW]
emails_failed[RW]
emails_opened[RW]
emails_responded[RW]
emails_sent[RW]
emails_skipped[RW]
id[RW]
message_id[RW]
survey_id[RW]

Public Class Methods

attributes() click to toggle source
# File lib/qualtrics/distribution.rb, line 30
def self.attributes
  {
    'EmailDistributionID'   => :id,
    'MessageID'             => :message_id,
    'SurveyID'              => :survey_id,
    'EmailsSent'            => :emails_sent,
    'EmailsFailed'          => :emails_failed,
    'EmailsResponded'       => :emails_responded,
    'EmailsBounced'         => :emails_bounced,
    'EmailsOpened'          => :emails_opened,
    'EmailsSkipped'         => :emails_skipped
  }
end
get_distribution_with_panel(panel, survey, library_id = configuration.default_library_id) click to toggle source
# File lib/qualtrics/distribution.rb, line 62
def self.get_distribution_with_panel(panel, survey, library_id = configuration.default_library_id)
  response = get('getDistributions',
    {
      'SurveyID' => survey.id,
      'PanelID' => panel.id,
      'LibraryID' => library_id
    }
  )

  if response.success?
    response.result['Distributions'].map do |distribution|
      Qualtrics::Distribution.new(response_hash(distribution))
    end
  else
    false
  end
end
new(options={}) click to toggle source
# File lib/qualtrics/distribution.rb, line 14
def initialize(options={})
  @id = options[:id]
  @message_id = options[:message_id]
  @survey_id = options[:survey_id]
  set_email_response_data(options)
end

Private Class Methods

response_hash(distribution_response) click to toggle source
# File lib/qualtrics/distribution.rb, line 82
def self.response_hash(distribution_response)
  {}.tap do |result|
    attributes.each do |k,v|
      result[v] = distribution_response[k]
    end
  end.delete_if {|key, value| value.nil? }
end

Public Instance Methods

refresh() click to toggle source
# File lib/qualtrics/distribution.rb, line 44
def refresh
  response = get('getDistributions',
    {
      'SurveyID' => survey_id,
      'DistributionID' => id,
      'LibraryID' => library_id
    }
  )

  if response.success?
    distribution_hash = response.result['Distributions']
    set_email_response_data(self.class.response_hash(distribution_hash ))
    true
  else
    false
  end
end
set_email_response_data(options={}) click to toggle source
# File lib/qualtrics/distribution.rb, line 21
def set_email_response_data(options={})
  @emails_sent      = options[:emails_sent]
  @emails_failed    = options[:emails_failed]
  @emails_responded = options[:emails_responded]
  @emails_bounced   = options[:emails_bounced]
  @emails_opened    = options[:emails_opened]
  @emails_skipped   = options[:emails_skipped]
end