]> git.openstreetmap.org Git - rails.git/commitdiff
Add changeset comment search api json format
authorAnton Khorev <tony29@yandex.ru>
Tue, 21 Nov 2023 15:56:41 +0000 (18:56 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sat, 15 Feb 2025 16:35:24 +0000 (19:35 +0300)
app/views/api/changeset_comments/_changeset_comment.json.jbuilder [new file with mode: 0644]
app/views/api/changeset_comments/index.json.jbuilder [new file with mode: 0644]
app/views/api/changesets/_changeset.json.jbuilder
test/controllers/api/changeset_comments_controller_test.rb

diff --git a/app/views/api/changeset_comments/_changeset_comment.json.jbuilder b/app/views/api/changeset_comments/_changeset_comment.json.jbuilder
new file mode 100644 (file)
index 0000000..73b1ec9
--- /dev/null
@@ -0,0 +1,8 @@
+json.id changeset_comment.id
+json.visible changeset_comment.visible
+json.date changeset_comment.created_at.xmlschema
+if changeset_comment.author.data_public?
+  json.uid changeset_comment.author.id
+  json.user changeset_comment.author.display_name
+end
+json.text changeset_comment.body
diff --git a/app/views/api/changeset_comments/index.json.jbuilder b/app/views/api/changeset_comments/index.json.jbuilder
new file mode 100644 (file)
index 0000000..0286b1a
--- /dev/null
@@ -0,0 +1,5 @@
+json.partial! "api/root_attributes"
+
+json.comments(@comments) do |comment|
+  json.partial! comment
+end
index f0e46132008be266b51408ab0b948b649f8fdfc6..7001a95e854ababb5a4293a4c011b5e8c53f7baa 100644 (file)
@@ -23,13 +23,6 @@ json.tags changeset.tags unless changeset.tags.empty?
 
 if @comments
   json.comments(@comments) do |comment|
-    json.id comment.id
-    json.visible comment.visible
-    json.date comment.created_at.xmlschema
-    if comment.author.data_public?
-      json.uid comment.author.id
-      json.user comment.author.display_name
-    end
-    json.text comment.body
+    json.partial! comment
   end
 end
index 2d8818986ecec3f8f75b18fd7a51bc619203e6b7..ba4200d3f8d2cfda3f6979b71a8fb74fb5eba0f8 100644 (file)
@@ -9,6 +9,10 @@ module Api
         { :path => "/api/0.6/changeset_comments", :method => :get },
         { :controller => "api/changeset_comments", :action => "index" }
       )
+      assert_routing(
+        { :path => "/api/0.6/changeset_comments.json", :method => :get },
+        { :controller => "api/changeset_comments", :action => "index", :format => "json" }
+      )
       assert_routing(
         { :path => "/api/0.6/changeset/1/comment", :method => :post },
         { :controller => "api/changeset_comments", :action => "create", :id => "1" }
@@ -65,6 +69,14 @@ module Api
       get api_changeset_comments_path(:user => user1.id)
       assert_response :success
       assert_comments_in_order [comment22, comment21, comment11]
+
+      get api_changeset_comments_path(:from => "2023-03-15T00:00:00Z", :format => "json")
+      assert_response :success
+      js = ActiveSupport::JSON.decode(@response.body)
+      assert_not_nil js
+      assert_equal 2, js["comments"].count
+      assert_equal comment23.id, js["comments"][0]["id"]
+      assert_equal comment22.id, js["comments"][1]["id"]
     end
 
     def test_create_by_unauthorized