]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5517'
authorTom Hughes <tom@compton.nu>
Sun, 19 Jan 2025 15:01:25 +0000 (15:01 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 19 Jan 2025 15:01:25 +0000 (15:01 +0000)
app/controllers/follows_controller.rb
app/views/follows/show.html.erb
config/routes.rb
test/controllers/api/tracepoints_controller_test.rb

index 39d6191cd80445330b9ec56ec5d59b3cd43293b4..a8da933dff89d0a06360ebebb5191fdf8333db56 100644 (file)
@@ -10,25 +10,25 @@ class FollowsController < ApplicationController
   authorize_resource
 
   before_action :check_database_writable
-  before_action :lookup_friend
+  before_action :lookup_user
 
   def show
-    @already_follows = current_user.follows?(@friend)
+    @already_follows = current_user.follows?(@user)
   end
 
   def create
     follow = Follow.new
     follow.follower = current_user
-    follow.following = @friend
-    if current_user.follows?(@friend)
-      flash[:warning] = t ".already_followed", :name => @friend.display_name
+    follow.following = @user
+    if current_user.follows?(@user)
+      flash[:warning] = t ".already_followed", :name => @user.display_name
     elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_follows_per_hour
       flash[:error] = t ".limit_exceeded"
     elsif follow.save
-      flash[:notice] = t ".success", :name => @friend.display_name
+      flash[:notice] = t ".success", :name => @user.display_name
       UserMailer.follow_notification(follow).deliver_later
     else
-      follow.add_error(t(".failed", :name => @friend.display_name))
+      follow.add_error(t(".failed", :name => @user.display_name))
     end
 
     referer = safe_referer(params[:referer]) if params[:referer]
@@ -37,25 +37,15 @@ class FollowsController < ApplicationController
   end
 
   def destroy
-    if current_user.follows?(@friend)
-      Follow.where(:follower => current_user, :following => @friend).delete_all
-      flash[:notice] = t ".success", :name => @friend.display_name
+    if current_user.follows?(@user)
+      Follow.where(:follower => current_user, :following => @user).delete_all
+      flash[:notice] = t ".success", :name => @user.display_name
     else
-      flash[:error] = t ".not_followed", :name => @friend.display_name
+      flash[:error] = t ".not_followed", :name => @user.display_name
     end
 
     referer = safe_referer(params[:referer]) if params[:referer]
 
     redirect_to referer || user_path
   end
-
-  private
-
-  ##
-  # ensure that there is a "friend" instance variable
-  def lookup_friend
-    @friend = User.active.find_by!(:display_name => params[:display_name])
-  rescue ActiveRecord::RecordNotFound
-    render_unknown_user params[:display_name]
-  end
 end
index 3b82f4b5b4dea92a7fd96e75a0ec98d4825c8d47..18773627132dbd763a37b483f2749d37fb5c6428 100644 (file)
@@ -1,5 +1,5 @@
 <% content_for :heading do %>
-  <h1><%= t(@already_follows ? ".unfollow.heading" : ".follow.heading", :user => @friend.display_name) %></h1>
+  <h1><%= t(@already_follows ? ".unfollow.heading" : ".follow.heading", :user => @user.display_name) %></h1>
 <% end %>
 
 <%= bootstrap_form_tag :method => (@already_follows ? :delete : :post) do |f| %>
index 178cda1cdf7f6b19769324ee622fa00f75086769..6efd17759e273e8a0d27d3e79634214d7cc34eb9 100644 (file)
@@ -64,11 +64,11 @@ OpenStreetMap::Application.routes.draw do
     get "relations" => "relations#index"
 
     get "map" => "map#index"
-
-    get "trackpoints" => "tracepoints#index"
   end
 
   namespace :api, :path => "api/0.6" do
+    resources :tracepoints, :path => "trackpoints", :only => :index
+
     resources :users, :only => :index
     resources :users, :path => "user", :id => /\d+/, :only => :show
     resources :user_traces, :path => "user/gpx_files", :module => :users, :controller => :traces, :only => :index
index aeea3f4f45f2ecfd64bc0ec4d2d80b0c9d8bb9d5..83c03af6c831fa65a8ef6441e0994aa8f416d522 100644 (file)
@@ -34,7 +34,7 @@ module Api
       maxlon = point.longitude + 0.001
       maxlat = point.latitude + 0.001
       bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
-      get trackpoints_path(:bbox => bbox)
+      get api_tracepoints_path(:bbox => bbox)
       assert_response :success
       assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
         assert_select "trk" do
@@ -56,7 +56,7 @@ module Api
       maxlon = point.longitude + 0.002
       maxlat = point.latitude + 0.002
       bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
-      get trackpoints_path(:bbox => bbox)
+      get api_tracepoints_path(:bbox => bbox)
       assert_response :success
       assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
         assert_select "trk", :count => 1 do
@@ -83,7 +83,7 @@ module Api
       maxlon = point.longitude + 0.002
       maxlat = point.latitude + 0.002
       bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
-      get trackpoints_path(:bbox => bbox)
+      get api_tracepoints_path(:bbox => bbox)
       assert_response :success
       assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
         assert_select "trk", :count => 1 do
@@ -100,26 +100,26 @@ module Api
     end
 
     def test_index_without_bbox
-      get trackpoints_path
+      get api_tracepoints_path
       assert_response :bad_request
       assert_equal "The parameter bbox is required", @response.body, "A bbox param was expected"
     end
 
     def test_traces_page_less_than_zero
       -10.upto(-1) do |i|
-        get trackpoints_path(:page => i, :bbox => "-0.1,-0.1,0.1,0.1")
+        get api_tracepoints_path(:page => i, :bbox => "-0.1,-0.1,0.1,0.1")
         assert_response :bad_request
         assert_equal "Page number must be greater than or equal to 0", @response.body, "The page number was #{i}"
       end
       0.upto(10) do |i|
-        get trackpoints_path(:page => i, :bbox => "-0.1,-0.1,0.1,0.1")
+        get api_tracepoints_path(:page => i, :bbox => "-0.1,-0.1,0.1,0.1")
         assert_response :success, "The page number was #{i} and should have been accepted"
       end
     end
 
     def test_bbox_too_big
       @badbigbbox.each do |bbox|
-        get trackpoints_path(:bbox => bbox)
+        get api_tracepoints_path(:bbox => bbox)
         assert_response :bad_request, "The bbox:#{bbox} was expected to be too big"
         assert_equal "The maximum bbox size is #{Settings.max_request_area}, and your request was too large. Either request a smaller area, or use planet.osm", @response.body, "bbox: #{bbox}"
       end
@@ -127,7 +127,7 @@ module Api
 
     def test_bbox_malformed
       @badmalformedbbox.each do |bbox|
-        get trackpoints_path(:bbox => bbox)
+        get api_tracepoints_path(:bbox => bbox)
         assert_response :bad_request, "The bbox:#{bbox} was expected to be malformed"
         assert_equal "The parameter bbox must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "bbox: #{bbox}"
       end
@@ -135,7 +135,7 @@ module Api
 
     def test_bbox_lon_mixedup
       @badlonmixedbbox.each do |bbox|
-        get trackpoints_path(:bbox => bbox)
+        get api_tracepoints_path(:bbox => bbox)
         assert_response :bad_request, "The bbox:#{bbox} was expected to have the longitude mixed up"
         assert_equal "The minimum longitude must be less than the maximum longitude, but it wasn't", @response.body, "bbox: #{bbox}"
       end
@@ -143,7 +143,7 @@ module Api
 
     def test_bbox_lat_mixedup
       @badlatmixedbbox.each do |bbox|
-        get trackpoints_path(:bbox => bbox)
+        get api_tracepoints_path(:bbox => bbox)
         assert_response :bad_request, "The bbox:#{bbox} was expected to have the latitude mixed up"
         assert_equal "The minimum latitude must be less than the maximum latitude, but it wasn't", @response.body, "bbox: #{bbox}"
       end
@@ -153,7 +153,7 @@ module Api
     def test_lat_lon_xml_format
       create(:tracepoint, :latitude => (0.00004 * GeoRecord::SCALE).to_i, :longitude => (0.00008 * GeoRecord::SCALE).to_i)
 
-      get trackpoints_path(:bbox => "0,0,0.1,0.1")
+      get api_tracepoints_path(:bbox => "0,0,0.1,0.1")
       assert_match(/lat="0.0000400"/, response.body)
       assert_match(/lon="0.0000800"/, response.body)
     end