class QuickappsFeedback::SendFeedbackToUservoice

Public Instance Methods

api_key() click to toggle source
# File lib/quickapps_feedback/send_feedback_to_uservoice.rb, line 48
def api_key
  ENV['UV_API_KEY']
end
api_secret() click to toggle source
# File lib/quickapps_feedback/send_feedback_to_uservoice.rb, line 52
def api_secret
  ENV['UV_API_SECRET']
end
perform(feedback) click to toggle source
# 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 = {}) click to toggle source
# 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.login_as(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 = {}) click to toggle source
# 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_name() click to toggle source
# File lib/quickapps_feedback/send_feedback_to_uservoice.rb, line 44
def subdomain_name
  ENV['UV_SUBDOMAIN_NAME']
end