Skip to content
Browse files

Leveling message

  • Loading branch information...
1 parent abc66b3 commit fd96f7f69e96611a58b047f441337c9d386330db @dkapadia dkapadia committed Apr 26, 2010
View
11 app/controllers/questions_controller.rb
@@ -647,12 +647,17 @@ def vote(direction)
if conditional
#flash[:notice] = 'Vote was successfully counted.'
newprompt = Crack::XML.parse(p.body)['prompt']
+
+ leveling_message = Visitor.leveling_message(:votes => newprompt['visitor_votes'].to_i,
+ :ideas => newprompt['visitor_ideas'].to_i)
+
logger.info "newprompt is #{newprompt.inspect}"
session[:current_prompt_id] = newprompt['id']
session[:appearance_lookup] = newprompt['appearance_id']
#@newprompt = Question.find(params[:id])
render :json => {:votes => 20, :newleft => truncate((newprompt['left_choice_text']), :length => 137),
- :newright => truncate((newprompt['right_choice_text']), :length => 137)
+ :newright => truncate((newprompt['right_choice_text']), :length => 137),
+ :leveling_message => leveling_message
}.to_json
else
render :json => '{"error" : "Vote failed"}'
@@ -709,9 +714,13 @@ def add_idea
logger.info "just posted to 'create from abroad', response pending"
newchoice = Crack::XML.parse(p.body)['choice']
logger.info "response is #{newchoice.inspect}"
+
+ leveling_message = Visitor.leveling_message(:votes => newchoice['visitor_votes'].to_i,
+ :ideas => newchoice['visitor_ideas'].to_i)
@question = Question.find(params[:id])
render :json => {:votes => 20,
:choice_status => newchoice['choice_status'],
+ :leveling_message => leveling_message,
:message => "#{t('items.you_just_submitted')}: #{new_idea_data}"}.to_json
case newchoice['choice_status']
when 'inactive'
View
25 app/models/visitor.rb
@@ -1,3 +1,28 @@
class Visitor < ActiveRecord::Base
has_many :session_infos
+
+ #Default param values to use in leveling message
+ A = 10
+ B = 0
+ C = 0.7
+ D = 25
+ E = 0
+ F = 0.7
+ LEVEL_ADJECTIVES = ["terrible", "pathetic", "lame", "so-so", "okay, I suppose",
+ "not bad", "good", "great", "amazing", "mythical"]
+
+ def self.leveling_message(params = {:votes => 0, :ideas => 0})
+ score = self.level_score(params)
+
+ message = "Now you have cast " +
+ "#{params[:votes]} #{params[:votes] == 1 ? "votes".singularize : "votes"} "+
+ "and added #{params[:ideas]} #{params[:ideas] == 1 ? "ideas".singularize : "ideas"}: "+
+ LEVEL_ADJECTIVES[(score/10).truncate]
+
+
+ end
+
+ def self.level_score(params = {:votes => 0, :ideas => 0})
+ (A * params[:votes] + B)**C + (D * params[:ideas] + E)**F
+ end
end
View
6 app/views/earls/_vote_box_js.html.erb
@@ -40,7 +40,7 @@ set_focus_and_blur_events = function() {
$.post('/questions/' + question_id + '/add_idea.js' + '?locale=<%= I18n.locale %>',
'authenticity_token='+encodeURIComponent(AUTH_TOKEN)+'&new_idea='+new_idea,
function(data){
- $('.tellmearea').html(data["message"]);
+ $('.tellmearea').html(data["message"] + " <br /> " + data["leveling_message"]);
$('#new_idea_field').val("");
thankyoutext = '<%=t('vote.submit_idea_thankyou')%>';
$('#new_idea_field').attr('title', thankyoutext);
@@ -116,14 +116,14 @@ set_focus_and_blur_events = function() {
$('.tellmearea').html("<%= t('vote.vote_other_error') %>").effect("highlight", {color: '#ff0000'}, 1500);
}
- loadedTime = new Date() //reset loaded time
+ loadedTime = new Date(); //reset loaded time
},
success: function(data){
$('.indicator').hide();
$('.leftside').html(data["newleft"]);
$('.rightside').html(data["newright"]);
- $('.tellmearea').html("<%= t('vote.you_chose')%> " + winner + " <%=t('vote.over') %> " + loser).effect("highlight", {}, 1500);
+ $('.tellmearea').html("<%= t('vote.you_chose')%> " + winner + " <%=t('vote.over') %> " + loser + " <br /> " + data["leveling_message"]).effect("highlight", {}, 1500);
current_vote_count = $('#votes_count').html();
$('#votes_count').html(increment(current_vote_count)).effect("highlight", {}, 1500);
$.unblockUI();
View
10 config/environments/cucumber.rb
@@ -14,7 +14,8 @@
config.action_controller.perform_caching = false
# Disable request forgery protection in test environment
-config.action_controller.allow_forgery_protection = false
+# THIS IS IMPORTANT
+config.action_controller.allow_forgery_protection = true
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
@@ -23,7 +24,8 @@
config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails'))
config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
-config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
+#config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
+config.gem 'capybara', :lib => false, :version => '>=0.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/capybara'))
config.gem 'rspec', :lib => false, :version => '>=1.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
config.gem 'rspec-rails', :lib => false, :version => '>=1.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
@@ -38,4 +40,6 @@
PAIRWISE_PASSWORD = "wheatthins"
require 'redis-store'
-Abingo.cache = ActiveSupport::Cache::RedisStore.new
+#use a different redis store for testing
+Abingo.cache = ActiveSupport::Cache::RedisStore.new "localhost:6379/2"
+Abingo.cache.clear
View
3 features/idea_marketplaces/create_question.feature
@@ -1,4 +1,4 @@
-@focus
+@demo
Feature: Creating Idea marketplaces
In order to collect information on preferences
As a question admin
@@ -47,7 +47,6 @@ Feature: Creating Idea marketplaces
Then I should see "errors prohibited this website"
And I should not see "Congratulations."
- @superfocus
Scenario Outline: User does not fill in all fields
Given I am on the question create page
When I fill in all fields with valid data except "<field>"
View
10 features/step_definitions/idea_marketplace_steps.rb
@@ -1,5 +1,10 @@
Given /^an idea marketplace exists with url '(.*)'$/ do |url|
- Factory.create(:earl, :name => url)
+ Given "I am on the question create page"
+ When "I fill in all fields with valid data except \"question_url\""
+ And "I fill in \"question_url\" with \"#{url}\""
+ And "I press \"Create\""
+
+ Capybara.reset_sessions!
end
When /^I fill in all fields with valid data except "([^\"]*)"$/ do |field_id|
valid_data = Hash[
@@ -10,9 +15,6 @@
"question_password" => "password"
]
- if field_id == "question_email"
-
- end
valid_data.each do |k, v|
if k == field_id
View
11 features/step_definitions/voting_steps.rb
@@ -0,0 +1,11 @@
+When /^I click on the left choice$/ do
+ When "I follow \"leftside\""
+ Capybara.default_wait_time = 10
+end
+
+When /^I upload an idea titled '(.*)'$/ do |ideatext|
+ When "I fill in \"new_idea_field\" with \"#{ideatext}\""
+ find("#submit_btn").click
+
+end
+
View
251 features/step_definitions/web_steps.rb
@@ -8,8 +8,12 @@
require 'uri'
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
-# Commonly used webrat steps
-# http://github.com/brynary/webrat
+module WithinHelpers
+ def with_scope(locator)
+ locator ? within(locator) { yield } : yield
+ end
+end
+World(WithinHelpers)
Given /^(?:|I )am on (.+)$/ do |page_name|
visit path_to(page_name)
@@ -19,24 +23,28 @@
visit path_to(page_name)
end
-When /^(?:|I )press "([^\"]*)"$/ do |button|
- click_button(button)
-end
-
-When /^(?:|I )follow "([^\"]*)"$/ do |link|
- click_link(link)
+When /^(?:|I )press "([^\"]*)"(?: within "([^\"]*)")?$/ do |button, selector|
+ with_scope(selector) do
+ click_button(button)
+ end
end
-When /^(?:|I )follow "([^\"]*)" within "([^\"]*)"$/ do |link, parent|
- click_link_within(parent, link)
+When /^(?:|I )follow "([^\"]*)"(?: within "([^\"]*)")?$/ do |link, selector|
+ with_scope(selector) do
+ click_link(link)
+ end
end
-When /^(?:|I )fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
- fill_in(field, :with => value)
+When /^(?:|I )fill in "([^\"]*)" with "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, value, selector|
+ with_scope(selector) do
+ fill_in(field, :with => value)
+ end
end
-When /^(?:|I )fill in "([^\"]*)" for "([^\"]*)"$/ do |value, field|
- fill_in(field, :with => value)
+When /^(?:|I )fill in "([^\"]*)" for "([^\"]*)"(?: within "([^\"]*)")?$/ do |value, field, selector|
+ with_scope(selector) do
+ fill_in(field, :with => value)
+ end
end
# Use this to fill in an entire form with data from a table. Example:
@@ -50,205 +58,126 @@
# TODO: Add support for checkbox, select og option
# based on naming conventions.
#
-When /^(?:|I )fill in the following:$/ do |fields|
- fields.rows_hash.each do |name, value|
- When %{I fill in "#{name}" with "#{value}"}
+When /^(?:|I )fill in the following(?: within "([^\"]*)")?:$/ do |selector, fields|
+ with_scope(selector) do
+ fields.rows_hash.each do |name, value|
+ When %{I fill in "#{name}" with "#{value}"}
+ end
end
end
-When /^(?:|I )select "([^\"]*)" from "([^\"]*)"$/ do |value, field|
- select(value, :from => field)
-end
-
-# Use this step in conjunction with Rail's datetime_select helper. For example:
-# When I select "December 25, 2008 10:00" as the date and time
-When /^(?:|I )select "([^\"]*)" as the date and time$/ do |time|
- select_datetime(time)
-end
-
-# Use this step when using multiple datetime_select helpers on a page or
-# you want to specify which datetime to select. Given the following view:
-# <%= f.label :preferred %><br />
-# <%= f.datetime_select :preferred %>
-# <%= f.label :alternative %><br />
-# <%= f.datetime_select :alternative %>
-# The following steps would fill out the form:
-# When I select "November 23, 2004 11:20" as the "Preferred" date and time
-# And I select "November 25, 2004 10:30" as the "Alternative" date and time
-When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date and time$/ do |datetime, datetime_label|
- select_datetime(datetime, :from => datetime_label)
-end
-
-# Use this step in conjunction with Rail's time_select helper. For example:
-# When I select "2:20PM" as the time
-# Note: Rail's default time helper provides 24-hour time-- not 12 hour time. Webrat
-# will convert the 2:20PM to 14:20 and then select it.
-When /^(?:|I )select "([^\"]*)" as the time$/ do |time|
- select_time(time)
-end
-
-# Use this step when using multiple time_select helpers on a page or you want to
-# specify the name of the time on the form. For example:
-# When I select "7:30AM" as the "Gym" time
-When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" time$/ do |time, time_label|
- select_time(time, :from => time_label)
-end
-
-# Use this step in conjunction with Rail's date_select helper. For example:
-# When I select "February 20, 1981" as the date
-When /^(?:|I )select "([^\"]*)" as the date$/ do |date|
- select_date(date)
-end
-
-# Use this step when using multiple date_select helpers on one page or
-# you want to specify the name of the date on the form. For example:
-# When I select "April 26, 1982" as the "Date of Birth" date
-When /^(?:|I )select "([^\"]*)" as the "([^\"]*)" date$/ do |date, date_label|
- select_date(date, :from => date_label)
-end
-
-When /^(?:|I )check "([^\"]*)"$/ do |field|
- check(field)
+When /^(?:|I )select "([^\"]*)" from "([^\"]*)"(?: within "([^\"]*)")?$/ do |value, field, selector|
+ with_scope(selector) do
+ select(value, :from => field)
+ end
end
-When /^(?:|I )uncheck "([^\"]*)"$/ do |field|
- uncheck(field)
+When /^(?:|I )check "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
+ with_scope(selector) do
+ check(field)
+ end
end
-When /^(?:|I )choose "([^\"]*)"$/ do |field|
- choose(field)
+When /^(?:|I )uncheck "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
+ with_scope(selector) do
+ uncheck(field)
+ end
end
-# Adds support for validates_attachment_content_type. Without the mime-type getting
-# passed to attach_file() you will get a "Photo file is not one of the allowed file types."
-# error message
-When /^(?:|I )attach the file "([^\"]*)" to "([^\"]*)"$/ do |path, field|
- type = path.split(".")[1]
-
- case type
- when "jpg"
- type = "image/jpg"
- when "jpeg"
- type = "image/jpeg"
- when "png"
- type = "image/png"
- when "gif"
- type = "image/gif"
+When /^(?:|I )choose "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
+ with_scope(selector) do
+ choose(field)
end
-
- attach_file(field, path, type)
end
-Then /^(?:|I )should see "([^\"]*)"$/ do |text|
- if defined?(Spec::Rails::Matchers)
- response.should contain(text)
- else
- assert_contain text
+When /^(?:|I )attach the file "([^\"]*)" to "([^\"]*)"(?: within "([^\"]*)")?$/ do |path, field, selector|
+ with_scope(selector) do
+ attach_file(field, path)
end
end
-Then /^(?:|I )should see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
- within(selector) do |content|
+Then /^(?:|I )should see "([^\"]*)"(?: within "([^\"]*)")?$/ do |text, selector|
+ with_scope(selector) do
if defined?(Spec::Rails::Matchers)
- content.should contain(text)
+ page.should have_content(text)
else
- hc = Webrat::Matchers::HasContent.new(text)
- assert hc.matches?(content), hc.failure_message
+ assert page.has_content?(text)
end
end
end
-Then /^(?:|I )should see \/([^\/]*)\/$/ do |regexp|
+Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^\"]*)")?$/ do |regexp, selector|
regexp = Regexp.new(regexp)
- if defined?(Spec::Rails::Matchers)
- response.should contain(regexp)
- else
- assert_match(regexp, response_body)
- end
-end
-
-Then /^(?:|I )should see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector|
- within(selector) do |content|
- regexp = Regexp.new(regexp)
+ with_scope(selector) do
if defined?(Spec::Rails::Matchers)
- content.should contain(regexp)
+ page.should have_xpath('//*', :text => regexp)
else
- assert_match(regexp, content)
+ assert page.has_xpath?('//*', :text => regexp)
end
end
end
-Then /^(?:|I )should not see "([^\"]*)"$/ do |text|
- if defined?(Spec::Rails::Matchers)
- response.should_not contain(text)
- else
- assert_not_contain(text)
- end
-end
-
-Then /^(?:|I )should not see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
- within(selector) do |content|
+Then /^(?:|I )should not see "([^\"]*)"(?: within "([^\"]*)")?$/ do |text, selector|
+ with_scope(selector) do
if defined?(Spec::Rails::Matchers)
- content.should_not contain(text)
+ page.should have_no_content(text)
else
- hc = Webrat::Matchers::HasContent.new(text)
- assert !hc.matches?(content), hc.negative_failure_message
+ assert page.has_no_content?(text)
end
end
end
-Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp|
+Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^\"]*)")?$/ do |regexp, selector|
regexp = Regexp.new(regexp)
- if defined?(Spec::Rails::Matchers)
- response.should_not contain(regexp)
- else
- assert_not_contain(regexp)
- end
-end
-
-Then /^(?:|I )should not see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector|
- within(selector) do |content|
- regexp = Regexp.new(regexp)
+ with_scope(selector) do
if defined?(Spec::Rails::Matchers)
- content.should_not contain(regexp)
+ page.should have_no_xpath('//*', :text => regexp)
else
- assert_no_match(regexp, content)
+ assert page.has_no_xpath?('//*', :text => regexp)
end
end
end
-Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value|
- if defined?(Spec::Rails::Matchers)
- field_labeled(field).value.should =~ /#{value}/
- else
- assert_match(/#{value}/, field_labeled(field).value)
+Then /^the "([^\"]*)" field(?: within "([^\"]*)")? should contain "([^\"]*)"$/ do |field, selector, value|
+ with_scope(selector) do
+ if defined?(Spec::Rails::Matchers)
+ find_field(field).value.should =~ /#{value}/
+ else
+ assert_match(/#{value}/, field_labeled(field).value)
+ end
end
end
-Then /^the "([^\"]*)" field should not contain "([^\"]*)"$/ do |field, value|
- if defined?(Spec::Rails::Matchers)
- field_labeled(field).value.should_not =~ /#{value}/
- else
- assert_no_match(/#{value}/, field_labeled(field).value)
+Then /^the "([^\"]*)" field(?: within "([^\"]*)")? should not contain "([^\"]*)"$/ do |field, selector, value|
+ with_scope(selector) do
+ if defined?(Spec::Rails::Matchers)
+ find_field(field).value.should_not =~ /#{value}/
+ else
+ assert_no_match(/#{value}/, find_field(field).value)
+ end
end
end
-Then /^the "([^\"]*)" checkbox should be checked$/ do |label|
- if defined?(Spec::Rails::Matchers)
- field_labeled(label).should be_checked
- else
- assert field_labeled(label).checked?
+Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should be checked$/ do |label, selector|
+ with_scope(selector) do
+ if defined?(Spec::Rails::Matchers)
+ find_field(label)['checked'].should == 'checked'
+ else
+ assert_equal 'checked', field_labeled(label)['checked']
+ end
end
end
-Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
- if defined?(Spec::Rails::Matchers)
- field_labeled(label).should_not be_checked
- else
- assert !field_labeled(label).checked?
+Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should not be checked$/ do |label, selector|
+ with_scope(selector) do
+ if defined?(Spec::Rails::Matchers)
+ find_field(label)['checked'].should_not == 'checked'
+ else
+ assert_not_equal 'checked', field_labeled(label)['checked']
+ end
end
end
-
+
Then /^(?:|I )should be on (.+)$/ do |page_name|
if defined?(Spec::Rails::Matchers)
URI.parse(current_url).path.should == path_to(page_name)
View
18 features/support/env.rb
@@ -12,16 +12,16 @@
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
-require 'ruby-debug'
-
-require 'webrat'
-require 'webrat/core/matchers'
-
-Webrat.configure do |config|
- config.mode = :rails
- config.open_error_files = false # Set to true if you want error pages to pop up in the browser
-end
+require 'capybara/rails'
+require 'capybara/cucumber'
+require 'capybara/session'
+require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
+# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
+# order to ease the transition to Capybara we set the default here. If you'd
+# prefer to use XPath just remove this line and adjust any selectors in your
+# steps to use the XPath syntax.
+Capybara.default_selector = :css
# If you set this to false, any error raised from within your app will bubble
# up to your step definition and out to cucumber unless you catch it somewhere
View
5 features/support/paths.rb
@@ -15,6 +15,11 @@ def path_to(page_name)
question_path
when /the question create page/i
new_question_path
+
+ when /the Cast Votes page for '([^'].*)'/i
+ "/"+ $1
+ when /the View Results page for '([^'].*)'/i
+ "/"+ $1 + "/results"
# Add more page name => path mappings here
else
View
31 features/voting/leveling_adjectives.feature
@@ -0,0 +1,31 @@
+Feature: Leveling Adjectives
+ In order to be encouraged to submit more votes
+ A user
+ Should be presented with encouraging 'leveling' adjectives based on participation
+
+ Background:
+ Given an idea marketplace exists with url 'test'
+ And I am on the Cast Votes page for 'test'
+
+ @selenium
+ Scenario: User submits a single vote
+ When I click on the left choice
+ Then I should see "Now you have cast 1 vote and added 0 ideas: terrible" within ".tellmearea"
+ And I should see "You chose" within ".tellmearea"
+
+ @selenium
+ Scenario: User submits a single idea
+ When I upload an idea titled 'blah blah blah'
+ Then I should see "Now you have cast 0 votes and added 1 idea: terrible" within ".tellmearea"
+ @focus
+ @selenium
+ Scenario: User views results in the middle of voting
+ When I click on the left choice
+ And I go to the View Results page for 'test'
+ And I go to the Cast Votes page for 'test'
+ And I click on the left choice
+ Then I should see "Now you have cast 2 votes and added 0 ideas: terrible" within ".tellmearea"
+
+
+
+
View
39 spec/models/visitor_spec.rb
@@ -0,0 +1,39 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe Visitor do
+ before(:each) do
+ @valid_attributes = {
+ }
+ end
+
+ it "should create a new instance given valid attributes" do
+ Visitor.create!(@valid_attributes)
+ end
+
+ it "should calculate scores accurately" do
+ examples = [ #votes, #ideas, result
+ [0, 0, 0.0], [0, 1, 9.5], [0, 2, 15.5],
+ [1, 0, 5.0], [1, 1, 14.5], [1, 2, 20.5],
+ [2, 0, 8.1], [2, 1, 17.7], [2, 2, 23.6],
+ [3, 0, 10.8],[3, 1, 20.3], [3, 2, 26.3],
+ [4, 0, 13.2],[4, 1, 22.7], [4, 2, 28.7],
+ [5, 0, 15.5],[5, 1, 25.0], [5, 2, 30.9],
+ [6, 0, 17.6],[6, 1, 27.1], [6, 2, 33.0],
+ [7, 0, 19.6],[7, 1, 29.1], [7, 2, 35.0],
+ [8, 0, 21.5],[8, 1, 31.0], [8, 2, 36.9],
+ [9, 0, 23.3],[9, 1, 32.9], [9, 2, 38.8],
+ [10, 0, 25.1],[10, 1,34.6],[10, 2, 40.6]
+
+ ]
+
+ examples.each do |e|
+ Visitor.level_score(:votes => e[0], :ideas => e[1]).should be_close(e[2], 0.05)
+ end
+ end
+
+ it "should return level messages accurately" do
+ Visitor.leveling_message(:votes => 0, :ideas => 1).should == "Now you have cast 0 votes and added 1 idea: terrible"
+ Visitor.leveling_message(:votes => 1, :ideas => 1).should == "Now you have cast 1 vote and added 1 idea: pathetic"
+ Visitor.leveling_message(:votes => 2, :ideas => 2).should == "Now you have cast 2 votes and added 2 ideas: lame"
+ end
+end

0 comments on commit fd96f7f

Please sign in to comment.
Something went wrong with that request. Please try again.