Commit e5b81bcfc0dc72d5116f246ad20f5bad1fcca964
Committed by
Larissa Reis
1 parent
63f25af1
Exists in
profile_api_improvements
and in
1 other branch
Filters request type in profile_controller
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Showing
2 changed files
with
13 additions
and
16 deletions
Show diff stats
app/controllers/public/profile_controller.rb
| ... | ... | @@ -5,6 +5,7 @@ class ProfileController < PublicController |
| 5 | 5 | before_filter :store_location, :only => [:join, :join_not_logged, :report_abuse, :send_mail] |
| 6 | 6 | before_filter :login_required, :only => [:add, :join, :leave, :unblock, :leave_scrap, :remove_scrap, :remove_activity, :view_more_activities, :view_more_network_activities, :report_abuse, :register_report, :leave_comment_on_activity, :send_mail, :follow, :unfollow] |
| 7 | 7 | before_filter :allow_followers?, :only => [:follow, :unfollow] |
| 8 | + before_filter :accept_only_post, :only => [:follow, :unfollow] | |
| 8 | 9 | |
| 9 | 10 | helper TagsHelper |
| 10 | 11 | helper ActionTrackerHelper |
| ... | ... | @@ -161,20 +162,16 @@ class ProfileController < PublicController |
| 161 | 162 | end |
| 162 | 163 | |
| 163 | 164 | def follow |
| 164 | - if request.post? | |
| 165 | - if profile.followed_by?(current_person) | |
| 166 | - render :text => _("You are already following %s.") % profile.name, :status => 400 | |
| 165 | + if profile.followed_by?(current_person) | |
| 166 | + render :text => _("You are already following %s.") % profile.name, :status => 400 | |
| 167 | + else | |
| 168 | + selected_circles = params[:circles].map{ |circle_name, circle_id| Circle.find_by(:id => circle_id) }.select{ |c| c.present? } | |
| 169 | + if selected_circles.present? | |
| 170 | + current_person.follow(profile, selected_circles) | |
| 171 | + render :text => _("You are now following %s") % profile.name, :status => 200 | |
| 167 | 172 | else |
| 168 | - selected_circles = params[:circles].map{|circle_name, circle_id| Circle.find_by(:id => circle_id)}.select{|c|not c.nil?} | |
| 169 | - if selected_circles.present? | |
| 170 | - current_person.follow(profile, selected_circles) | |
| 171 | - render :text => _("You are now following %s") % profile.name, :status => 200 | |
| 172 | - else | |
| 173 | - render :text => _("Select at least one circle to follow %s.") % profile.name, :status => 400 | |
| 174 | - end | |
| 173 | + render :text => _("Select at least one circle to follow %s.") % profile.name, :status => 400 | |
| 175 | 174 | end |
| 176 | - else | |
| 177 | - render_not_found | |
| 178 | 175 | end |
| 179 | 176 | end |
| 180 | 177 | ... | ... |
test/functional/profile_controller_test.rb
| ... | ... | @@ -2006,7 +2006,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 2006 | 2006 | |
| 2007 | 2007 | should "not unfollow user if not logged" do |
| 2008 | 2008 | person = fast_create(Person) |
| 2009 | - get :unfollow, :profile => person.identifier | |
| 2009 | + post :unfollow, :profile => person.identifier | |
| 2010 | 2010 | |
| 2011 | 2011 | assert_redirected_to :controller => 'account', :action => 'login' |
| 2012 | 2012 | end |
| ... | ... | @@ -2020,7 +2020,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 2020 | 2020 | |
| 2021 | 2021 | assert_not_nil follower |
| 2022 | 2022 | |
| 2023 | - get :unfollow, :profile => person.identifier | |
| 2023 | + post :unfollow, :profile => person.identifier | |
| 2024 | 2024 | follower = ProfileFollower.find_by(:profile_id => person.id, :circle_id => circle.id) |
| 2025 | 2025 | assert_nil follower |
| 2026 | 2026 | end |
| ... | ... | @@ -2030,7 +2030,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 2030 | 2030 | person = fast_create(Person) |
| 2031 | 2031 | |
| 2032 | 2032 | assert_no_difference 'ProfileFollower.count' do |
| 2033 | - get :unfollow, :profile => person.identifier | |
| 2033 | + post :unfollow, :profile => person.identifier | |
| 2034 | 2034 | end |
| 2035 | 2035 | end |
| 2036 | 2036 | |
| ... | ... | @@ -2041,7 +2041,7 @@ class ProfileControllerTest < ActionController::TestCase |
| 2041 | 2041 | circle = Circle.create!(:person=> @profile, :name => "Zombies", :profile_type => 'Person') |
| 2042 | 2042 | fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle.id) |
| 2043 | 2043 | |
| 2044 | - get :unfollow, :profile => person.identifier, :redirect_to => "/some/url" | |
| 2044 | + post :unfollow, :profile => person.identifier, :redirect_to => "/some/url" | |
| 2045 | 2045 | assert_redirected_to "/some/url" |
| 2046 | 2046 | end |
| 2047 | 2047 | ... | ... |