diff options
-rw-r--r-- | app/controllers/repositories_controller.rb | 15 | ||||
-rw-r--r-- | test/integration/api_test/api_routing_test.rb | 5 |
2 files changed, 18 insertions, 2 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index caa6a29b4..73929c1df 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -35,6 +35,7 @@ class RepositoriesController < ApplicationController before_action :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue] before_action :authorize accept_rss_auth :revisions + accept_api_auth :add_related_issue, :remove_related_issue rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed @@ -233,8 +234,14 @@ class RepositoriesController < ApplicationController @issue = nil end - if @issue - @changeset.issues << @issue + respond_to do |format| + if @issue + @changeset.issues << @issue + format.api { render_api_ok } + else + format.api { render_api_errors "#{l(:label_issue)} #{l('activerecord.errors.messages.invalid')}" } + end + format.js end end @@ -245,6 +252,10 @@ class RepositoriesController < ApplicationController if @issue @changeset.issues.delete(@issue) end + respond_to do |format| + format.api { render_api_ok } + format.js + end end def diff diff --git a/test/integration/api_test/api_routing_test.rb b/test/integration/api_test/api_routing_test.rb index 9c5da6adf..5e2b6d85a 100644 --- a/test/integration/api_test/api_routing_test.rb +++ b/test/integration/api_test/api_routing_test.rb @@ -117,6 +117,11 @@ class Redmine::ApiTest::ApiRoutingTest < Redmine::ApiTest::Routing should_route 'GET /queries' => 'queries#index' end + def test_repositories + should_route 'POST /projects/1/repository/2/revisions/3/issues' => 'repositories#add_related_issue', :id => '1', :repository_id => '2', :rev => '3' + should_route 'DELETE /projects/1/repository/2/revisions/3/issues/4' => 'repositories#remove_related_issue', :id => '1', :repository_id => '2', :rev => '3', :issue_id => '4' + end + def test_roles should_route 'GET /roles' => 'roles#index' should_route 'GET /roles/2' => 'roles#show', :id => '2' |