mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FIX: Look up a url without the query string if it couldn't be found with it.
This commit is contained in:
@ -8,6 +8,12 @@ class ClicksController < ApplicationController
|
|||||||
if params[:topic_id].present? || params[:post_id].present?
|
if params[:topic_id].present? || params[:post_id].present?
|
||||||
params.merge!({ user_id: current_user.id }) if current_user.present?
|
params.merge!({ user_id: current_user.id }) if current_user.present?
|
||||||
@redirect_url = TopicLinkClick.create_from(params)
|
@redirect_url = TopicLinkClick.create_from(params)
|
||||||
|
|
||||||
|
if @redirect_url.blank? && params[:url].index('?')
|
||||||
|
# Check the url without query parameters
|
||||||
|
params[:url].sub!(/\?.*$/, '')
|
||||||
|
@redirect_url = TopicLinkClick.create_from(params)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sometimes we want to record a link without a 302. Since XHR has to load the redirected
|
# Sometimes we want to record a link without a 302. Since XHR has to load the redirected
|
||||||
|
@ -28,7 +28,14 @@ describe ClicksController do
|
|||||||
xhr :get, :track, url: 'http://discourse.org', post_id: 123
|
xhr :get, :track, url: 'http://discourse.org', post_id: 123
|
||||||
response.should_not be_redirect
|
response.should_not be_redirect
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with a query string" do
|
||||||
|
it "tries again without the query if it fails" do
|
||||||
|
TopicLinkClick.expects(:create_from).with(has_entries('url' => 'http://discourse.org/?hello=123')).returns(nil)
|
||||||
|
TopicLinkClick.expects(:create_from).with(has_entries('url' => 'http://discourse.org/')).returns(nil)
|
||||||
|
xhr :get, :track, url: 'http://discourse.org/?hello=123', post_id: 123
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a post_id' do
|
context 'with a post_id' do
|
||||||
|
Reference in New Issue
Block a user