]> git.openstreetmap.org Git - rails.git/commitdiff
Add json output for show user block api
authorAnton Khorev <tony29@yandex.ru>
Sat, 9 Sep 2023 13:41:10 +0000 (16:41 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sat, 9 Sep 2023 13:50:36 +0000 (16:50 +0300)
app/views/api/user_blocks/_user_block.json.jbuilder [new file with mode: 0644]
app/views/api/user_blocks/show.json.jbuilder [new file with mode: 0644]
test/controllers/api/user_blocks_controller_test.rb

diff --git a/app/views/api/user_blocks/_user_block.json.jbuilder b/app/views/api/user_blocks/_user_block.json.jbuilder
new file mode 100644 (file)
index 0000000..3288dd6
--- /dev/null
@@ -0,0 +1,13 @@
+json.user_block do
+  json.id user_block.id
+  json.created_at user_block.created_at.xmlschema
+  json.updated_at user_block.updated_at.xmlschema
+  json.ends_at user_block.ends_at.xmlschema
+  json.needs_view user_block.needs_view
+
+  json.user :uid => user_block.user_id, :user => user_block.user.display_name
+  json.creator :uid => user_block.creator_id, :user => user_block.creator.display_name
+  json.revoker :uid => user_block.revoker_id, :user => user_block.revoker.display_name if user_block.revoker
+
+  json.reason user_block.reason
+end
diff --git a/app/views/api/user_blocks/show.json.jbuilder b/app/views/api/user_blocks/show.json.jbuilder
new file mode 100644 (file)
index 0000000..6cfc0de
--- /dev/null
@@ -0,0 +1,3 @@
+json.partial! "api/root_attributes"
+
+json.partial! @user_block
index eef54e931dc1404ace1f39020c98eda0b2b1e9a3..c8bdc1d57aae02dec2c109fae547226b7881dd54 100644 (file)
@@ -7,6 +7,10 @@ module Api
         { :path => "/api/0.6/user_blocks/1", :method => :get },
         { :controller => "api/user_blocks", :action => "show", :id => "1" }
       )
+      assert_routing(
+        { :path => "/api/0.6/user_blocks/1.json", :method => :get },
+        { :controller => "api/user_blocks", :action => "show", :id => "1", :format => "json" }
+      )
     end
 
     def test_show
@@ -15,6 +19,12 @@ module Api
       get api_user_block_path(:id => block)
       assert_response :success
       assert_select "user_block[id='#{block.id}']", 1
+
+      get api_user_block_path(:id => block, :format => "json")
+      assert_response :success
+      js = ActiveSupport::JSON.decode(@response.body)
+      assert_not_nil js
+      assert_equal block.id, js["user_block"]["id"]
     end
 
     def test_show_not_found