Class: Qualtrics::Distribution

Inherits:
Entity
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
lib/qualtrics/distribution.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Entity

#configuration, configuration, #get, get, #library_id, #library_id=, #persisted?, post, #post, #success?, underscore_attributes

Constructor Details

#initialize(options = {}) ⇒ Distribution

Returns a new instance of Distribution.



14
15
16
17
18
19
# 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

Instance Attribute Details

#emails_bouncedObject

Returns the value of attribute emails_bounced.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_bounced
  @emails_bounced
end

#emails_failedObject

Returns the value of attribute emails_failed.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_failed
  @emails_failed
end

#emails_openedObject

Returns the value of attribute emails_opened.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_opened
  @emails_opened
end

#emails_respondedObject

Returns the value of attribute emails_responded.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_responded
  @emails_responded
end

#emails_sentObject

Returns the value of attribute emails_sent.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_sent
  @emails_sent
end

#emails_skippedObject

Returns the value of attribute emails_skipped.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def emails_skipped
  @emails_skipped
end

#idObject

Returns the value of attribute id.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def id
  @id
end

#message_idObject

Returns the value of attribute message_id.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def message_id
  @message_id
end

#survey_idObject

Returns the value of attribute survey_id.



10
11
12
# File 'lib/qualtrics/distribution.rb', line 10

def survey_id
  @survey_id
end

Class Method Details

.attributesObject



30
31
32
33
34
35
36
37
38
39
40
41
42
# 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) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 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

Instance Method Details

#refreshObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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 = {}) ⇒ Object



21
22
23
24
25
26
27
28
# 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