Commit 1c61ac1c64e136b391d472a24bbc5538352e299d

Authored by Dmitriy Zaporozhets
1 parent e1c93a6b

Refactor MR code reload

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/controllers/projects/merge_requests_controller.rb
... ... @@ -106,9 +106,6 @@ class Projects::MergeRequestsController &lt; Projects::ApplicationController
106 106 params[:merge_request].delete(:target_project_id)
107 107  
108 108 if @merge_request.update_attributes(params[:merge_request].merge(author_id_of_changes: current_user.id))
109   - @merge_request.reload_code
110   - @merge_request.mark_as_unchecked
111   -
112 109 @merge_request.reset_events_cache
113 110  
114 111 respond_to do |format|
... ...
app/models/merge_request.rb
... ... @@ -32,7 +32,9 @@ class MergeRequest &lt; ActiveRecord::Base
32 32 belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project"
33 33  
34 34 has_one :merge_request_diff, dependent: :destroy
  35 +
35 36 after_create :create_merge_request_diff
  37 + after_update :update_merge_request_diff
36 38  
37 39 delegate :commits, :diffs, :last_commit, :last_commit_short_sha, to: :merge_request_diff, prefix: nil
38 40  
... ... @@ -125,6 +127,13 @@ class MergeRequest &lt; ActiveRecord::Base
125 127 end
126 128 end
127 129  
  130 + def update_merge_request_diff
  131 + if source_branch_changed? || target_branch_changed?
  132 + reload_code
  133 + mark_as_unchecked
  134 + end
  135 + end
  136 +
128 137 def reload_code
129 138 if merge_request_diff && opened?
130 139 merge_request_diff.reload_content
... ...
lib/api/merge_requests.rb
... ... @@ -116,8 +116,6 @@ module API
116 116 authorize! :modify_merge_request, merge_request
117 117  
118 118 if merge_request.update_attributes attrs
119   - merge_request.reload_code
120   - merge_request.mark_as_unchecked
121 119 present merge_request, with: Entities::MergeRequest
122 120 else
123 121 handle_merge_request_errors! merge_request.errors
... ...