Class: QuickappsFeedback::SendFeedbackToUservoice

Inherits:
Object
  • Object
show all
Defined in:
lib/quickapps_feedback/send_feedback_to_uservoice.rb

Instance Method Summary collapse

Instance Method Details

#api_keyObject



48
49
50
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 48

def api_key
  ENV['UV_API_KEY']
end

#api_secretObject



52
53
54
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 52

def api_secret
  ENV['UV_API_SECRET']
end

#perform(feedback) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 5

def perform(feedback)
  send_options = {:email => feedback.user_email,
                  :subject => "[#{ENV['MXIT_APP_NAME']}] #{feedback.subject}",
                  :message => feedback.message,
                  :name => feedback.user_real_name || CGI::unescape(feedback.user_name.to_s).gsub(/[^a-zA-Z0-9\s]/, '')}
  if feedback.support_type == 'suggestion'
    send_suggestion(send_options)
  else
    send_support(send_options)
  end
end

#send_suggestion(options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 17

def send_suggestion(options = {})
  client = UserVoice::Client.new(subdomain_name, api_key, api_secret)
  forum = client.get('/api/v1/forums.json')['forums'].first
  forum_id = forum['id']
  client.(options[:email]) do |access_token|
    access_token.post("/api/v1/forums/#{forum_id}/suggestions.json", {
      :suggestion => {
        :title => options[:subject],
        :text => options[:message],
        :votes => 0
      }
    })
  end
end

#send_support(options = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 32

def send_support(options = {})
  client = UserVoice::Client.new(subdomain_name, api_key, api_secret)
  client.post('/api/v1/tickets.json', {
    :email => options[:email],
    :name => options[:name],
    :ticket => {
      :subject => options[:subject],
      :message => options[:message]
    }
  })
end

#subdomain_nameObject



44
45
46
# File 'lib/quickapps_feedback/send_feedback_to_uservoice.rb', line 44

def subdomain_name
  ENV['UV_SUBDOMAIN_NAME']
end