@ -1,6 +1,7 @@
class MergeRequestsController < ApplicationController
class MergeRequestsController < ApplicationController
before_action :authenticate_user!
before_action :authenticate_user!
before_action :find_resource , only : % i [ organisations update_organisations remove_merging_organisation update_other_merging_organisations ]
before_action :find_resource , only : % i [ organisations update_organisations remove_merging_organisation ]
before_action :find_resource_by_id , only : % i [ update ]
def create
def create
@merge_request = MergeRequest . create! ( merge_request_params )
@merge_request = MergeRequest . create! ( merge_request_params )
@ -13,6 +14,14 @@ class MergeRequestsController < ApplicationController
@merging_organisations_list = [ @merge_request . requesting_organisation ] + @merge_request . merging_organisations
@merging_organisations_list = [ @merge_request . requesting_organisation ] + @merge_request . merging_organisations
end
end
def update
if @merge_request . update ( merge_request_params )
redirect_to next_page_path
else
render previous_template , status : :unprocessable_entity
end
end
def update_organisations
def update_organisations
merge_request_organisation = MergeRequestOrganisation . new ( merge_request_organisation_params )
merge_request_organisation = MergeRequestOrganisation . new ( merge_request_organisation_params )
@answer_options = organisations_answer_options
@answer_options = organisations_answer_options
@ -26,14 +35,6 @@ class MergeRequestsController < ApplicationController
end
end
end
end
def update_other_merging_organisations
if @merge_request . update ( other_merging_organisaitions_params )
redirect_to merge_request_absorbing_organisation_path ( @merge_request )
else
render :organisations , status : :unprocessable_entity
end
end
def remove_merging_organisation
def remove_merging_organisation
MergeRequestOrganisation . find_by ( merge_request_organisation_params ) . destroy!
MergeRequestOrganisation . find_by ( merge_request_organisation_params ) . destroy!
@merge_request . reload
@merge_request . reload
@ -56,7 +57,7 @@ private
def merge_request_params
def merge_request_params
merge_params = params . fetch ( :merge_request , { } ) . permit ( :requesting_organisation_id , :other_merging_organisations )
merge_params = params . fetch ( :merge_request , { } ) . permit ( :requesting_organisation_id , :other_merging_organisations )
if current_user . data_coordinator? || current_user . data_provider?
if merge_params [ :requesting_organisation_id ] . present? && ( current_user . data_coordinator? || current_user . data_provider? )
merge_params [ :requesting_organisation_id ] = current_user . organisation . id
merge_params [ :requesting_organisation_id ] = current_user . organisation . id
end
end
@ -67,11 +68,19 @@ private
{ merge_request : @merge_request , merging_organisation_id : params [ :merge_request ] [ :merging_organisation ] }
{ merge_request : @merge_request , merging_organisation_id : params [ :merge_request ] [ :merging_organisation ] }
end
end
def other_merging_organisaitions_params
params . fetch ( :merge_request , { } ) . permit ( :other_merging_organisations )
end
def find_resource
def find_resource
@merge_request = MergeRequest . find ( params [ :merge_request_id ] )
@merge_request = MergeRequest . find ( params [ :merge_request_id ] )
end
end
def find_resource_by_id
@merge_request = MergeRequest . find ( params [ :id ] )
end
def next_page_path
merge_request_absorbing_organisation_path ( @merge_request )
end
def previous_template
:organisations
end
end
end