]> git.openstreetmap.org Git - rails.git/commitdiff
Respond with plaintext when user not found in changeset query
authorAnton Khorev <tony29@yandex.ru>
Sat, 19 Aug 2023 17:22:19 +0000 (20:22 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sat, 19 Aug 2023 17:26:13 +0000 (20:26 +0300)
The response used to be of type xml with empty body, which is not valid xml.

app/controllers/api/changesets_controller.rb
test/controllers/api/changesets_controller_test.rb

index 84f1ccdb526b41be0d338f533f3c05b6e09f2212..a3dff4f1cd7e4fc935986a009c71e9b31ac7c411 100644 (file)
@@ -307,7 +307,7 @@ module Api
               # user input checking, we don't have any UIDs < 1
               raise OSM::APIBadUserInput, "invalid user ID" if user.to_i < 1
 
               # user input checking, we don't have any UIDs < 1
               raise OSM::APIBadUserInput, "invalid user ID" if user.to_i < 1
 
-              u = User.find(user.to_i)
+              u = User.find_by(:id => user.to_i)
             else
               u = User.find_by(:display_name => name)
             end
             else
               u = User.find_by(:display_name => name)
             end
index fd1940d6b2b973814e2b92f7ee590bd8debc3629..d4656a5ea24a1295a509924313dfd1c55388d6be 100644 (file)
@@ -1863,8 +1863,10 @@ module Api
       # not found when looking for changesets of non-existing users
       get changesets_path(:user => User.maximum(:id) + 1)
       assert_response :not_found
       # not found when looking for changesets of non-existing users
       get changesets_path(:user => User.maximum(:id) + 1)
       assert_response :not_found
+      assert_equal "text/plain", @response.media_type
       get changesets_path(:display_name => " ")
       assert_response :not_found
       get changesets_path(:display_name => " ")
       assert_response :not_found
+      assert_equal "text/plain", @response.media_type
 
       # can't get changesets of user 1 without authenticating
       get changesets_path(:user => private_user.id)
 
       # can't get changesets of user 1 without authenticating
       get changesets_path(:user => private_user.id)