Class: Qualtrics::Mailer

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

Constant Summary collapse

QUALTRICS_POST_TIMEZONE =
'Mountain Time (US & Canada)'

Instance Attribute 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 = {}) ⇒ Mailer

Returns a new instance of Mailer.



17
18
19
20
21
22
23
# File 'lib/qualtrics/mailer.rb', line 17

def initialize(options={})
  @send_date = options[:send_date] || post_time
  @from_email = options[:from_email]
  @from_name = options[:from_name]
  @subject = options[:subject]
  @sent_from_address = options[:sent_from_address] || '[email protected]'
end

Instance Attribute Details

#from_emailObject

Returns the value of attribute from_email.



9
10
11
# File 'lib/qualtrics/mailer.rb', line 9

def from_email
  @from_email
end

#from_nameObject

Returns the value of attribute from_name.



9
10
11
# File 'lib/qualtrics/mailer.rb', line 9

def from_name
  @from_name
end

#send_dateObject

Returns the value of attribute send_date.



9
10
11
# File 'lib/qualtrics/mailer.rb', line 9

def send_date
  @send_date
end

#sent_from_addressObject

Returns the value of attribute sent_from_address.



9
10
11
# File 'lib/qualtrics/mailer.rb', line 9

def sent_from_address
  @sent_from_address
end

#subjectObject

Returns the value of attribute subject.



9
10
11
# File 'lib/qualtrics/mailer.rb', line 9

def subject
  @subject
end

Instance Method Details

#attributesObject



84
85
86
87
88
89
90
91
92
# File 'lib/qualtrics/mailer.rb', line 84

def attributes
  {
    'SendDate'        => send_date,
    'FromEmail'       => from_email,
    'FromName'        => from_name,
    'Subject'         => subject,
    'SentFromAddress' => sent_from_address
  }
end

#send_reminder(distribution, message) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/qualtrics/mailer.rb', line 66

def send_reminder(distribution, message)
  return false if !valid?

  response = post('sendReminder', attributes.merge(
    {
      'ParentEmailDistributionID' => distribution.id,
      'MessageID' => message.id,
      'LibraryID' => library_id,
    })
  )

  if response.success?
    create_distribution(response, distribution.survey_id, message.id)
  else
    false
  end
end

#send_survey_to_individual(recipient, message, survey) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/qualtrics/mailer.rb', line 25

def send_survey_to_individual(recipient, message, survey)
  return false if !valid?

  response = post('sendSurveyToIndividual', attributes.merge(
    {
      'RecipientID' => recipient.id,
      'MessageID' => message.id,
      'SurveyID' => survey.id,
      'MessageLibraryID' => library_id,
      'PanelID' => recipient.panel_id,
      'PanelLibraryID' => library_id
    })
  )

  if response.success?
    create_distribution(response, survey.id, message.id)
  else
    false
  end
end

#send_survey_to_panel(panel, message, survey) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/qualtrics/mailer.rb', line 46

def send_survey_to_panel(panel, message, survey)
  return false if !valid?

  response = post('sendSurveyToPanel', attributes.merge(
    {
      'PanelID' => panel.id,
      'MessageID' => message.id,
      'SurveyID' => survey.id,
      'MessageLibraryID' => library_id,
      'PanelLibraryID' => library_id
    })
  )

  if response.success?
    create_distribution(response, survey.id, message.id)
  else
    false
  end
end