]> source.dussan.org Git - redmine.git/commitdiff
Adds option to include issue custom fields in projects#show API response (#33301).
authorGo MAEDA <maeda@farend.jp>
Tue, 21 Apr 2020 08:55:33 +0000 (08:55 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 21 Apr 2020 08:55:33 +0000 (08:55 +0000)
Patch by Jens Krämer.

git-svn-id: http://svn.redmine.org/redmine/trunk@19714 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/projects_helper.rb
test/integration/api_test/projects_test.rb

index 0df19d56dbcc85f06df90ffae5614de34273a15c..785f8429171355d50a4759454d955e30e41e9401 100644 (file)
@@ -152,6 +152,12 @@ module ProjectsHelper
         api.enabled_module(:id => enabled_module.id, :name => enabled_module.name)
       end
     end if include_in_api_response?('enabled_modules')
+
+    api.array :issue_custom_fields do
+      project.issue_custom_fields.each do |custom_field|
+        api.custom_field(:id => custom_field.id, :name => custom_field.name)
+      end
+    end if include_in_api_response?('issue_custom_fields')
   end
 
   def bookmark_link(project, user = User.current)
index 2e4e73c3a903b38aa6e0522b6b4a1bf418be2c0e..341865211b9bec0ec9a06dbb63074ad4d46cf7ea 100644 (file)
@@ -83,6 +83,14 @@ class Redmine::ApiTest::ProjectsTest < Redmine::ApiTest::Base
     assert_select 'enabled_modules[type=array] enabled_module[name=issue_tracking]'
   end
 
+  test "GET /projects.xml with include=issue_custom_fields should return custom fields" do
+    get '/projects.xml?include=issue_custom_fields'
+    assert_response :success
+    assert_equal 'application/xml', @response.media_type
+
+    assert_select 'issue_custom_fields[type=array] custom_field[name="Project 1 cf"]'
+  end
+
   test "GET /projects/:id.xml should return the project" do
     Project.find(1).update!(:inherit_members => '1')