From fceffe4dca9af5ab3ffaa2e110c5fb4bad254950 Mon Sep 17 00:00:00 2001 From: James Edwards-Jones Date: Wed, 22 Nov 2017 15:16:08 +0000 Subject: Renamed ProtectedBranches::ApiUpdateService to LegacyApiUpdateService --- .../protected_branches/api_create_service.rb | 29 ------------- .../protected_branches/api_update_service.rb | 47 ---------------------- .../legacy_api_create_service.rb | 29 +++++++++++++ .../legacy_api_update_service.rb | 47 ++++++++++++++++++++++ lib/api/branches.rb | 4 +- 5 files changed, 78 insertions(+), 78 deletions(-) delete mode 100644 app/services/protected_branches/api_create_service.rb delete mode 100644 app/services/protected_branches/api_update_service.rb create mode 100644 app/services/protected_branches/legacy_api_create_service.rb create mode 100644 app/services/protected_branches/legacy_api_update_service.rb diff --git a/app/services/protected_branches/api_create_service.rb b/app/services/protected_branches/api_create_service.rb deleted file mode 100644 index f2040dfa03a..00000000000 --- a/app/services/protected_branches/api_create_service.rb +++ /dev/null @@ -1,29 +0,0 @@ -# The protected branches API still uses the `developers_can_push` and `developers_can_merge` -# flags for backward compatibility, and so performs translation between that format and the -# internal data model (separate access levels). The translation code is non-trivial, and so -# lives in this service. -module ProtectedBranches - class ApiCreateService < BaseService - def execute - push_access_level = - if params.delete(:developers_can_push) - Gitlab::Access::DEVELOPER - else - Gitlab::Access::MASTER - end - - merge_access_level = - if params.delete(:developers_can_merge) - Gitlab::Access::DEVELOPER - else - Gitlab::Access::MASTER - end - - @params.merge!(push_access_levels_attributes: [{ access_level: push_access_level }], - merge_access_levels_attributes: [{ access_level: merge_access_level }]) - - service = ProtectedBranches::CreateService.new(@project, @current_user, @params) - service.execute - end - end -end diff --git a/app/services/protected_branches/api_update_service.rb b/app/services/protected_branches/api_update_service.rb deleted file mode 100644 index bdb0e0cc8bf..00000000000 --- a/app/services/protected_branches/api_update_service.rb +++ /dev/null @@ -1,47 +0,0 @@ -# The protected branches API still uses the `developers_can_push` and `developers_can_merge` -# flags for backward compatibility, and so performs translation between that format and the -# internal data model (separate access levels). The translation code is non-trivial, and so -# lives in this service. -module ProtectedBranches - class ApiUpdateService < BaseService - def execute(protected_branch) - @developers_can_push = params.delete(:developers_can_push) - @developers_can_merge = params.delete(:developers_can_merge) - - @protected_branch = protected_branch - - protected_branch.transaction do - delete_redundant_access_levels - - case @developers_can_push - when true - params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }] - when false - params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }] - end - - case @developers_can_merge - when true - params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }] - when false - params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }] - end - - service = ProtectedBranches::UpdateService.new(@project, @current_user, @params) - service.execute(protected_branch) - end - end - - private - - def delete_redundant_access_levels - unless @developers_can_merge.nil? - @protected_branch.merge_access_levels.destroy_all - end - - unless @developers_can_push.nil? - @protected_branch.push_access_levels.destroy_all - end - end - end -end diff --git a/app/services/protected_branches/legacy_api_create_service.rb b/app/services/protected_branches/legacy_api_create_service.rb new file mode 100644 index 00000000000..e358fd0374e --- /dev/null +++ b/app/services/protected_branches/legacy_api_create_service.rb @@ -0,0 +1,29 @@ +# The branches#protect API still uses the `developers_can_push` and `developers_can_merge` +# flags for backward compatibility, and so performs translation between that format and the +# internal data model (separate access levels). The translation code is non-trivial, and so +# lives in this service. +module ProtectedBranches + class LegacyApiCreateService < BaseService + def execute + push_access_level = + if params.delete(:developers_can_push) + Gitlab::Access::DEVELOPER + else + Gitlab::Access::MASTER + end + + merge_access_level = + if params.delete(:developers_can_merge) + Gitlab::Access::DEVELOPER + else + Gitlab::Access::MASTER + end + + @params.merge!(push_access_levels_attributes: [{ access_level: push_access_level }], + merge_access_levels_attributes: [{ access_level: merge_access_level }]) + + service = ProtectedBranches::CreateService.new(@project, @current_user, @params) + service.execute + end + end +end diff --git a/app/services/protected_branches/legacy_api_update_service.rb b/app/services/protected_branches/legacy_api_update_service.rb new file mode 100644 index 00000000000..33176253ca2 --- /dev/null +++ b/app/services/protected_branches/legacy_api_update_service.rb @@ -0,0 +1,47 @@ +# The branches#protect API still uses the `developers_can_push` and `developers_can_merge` +# flags for backward compatibility, and so performs translation between that format and the +# internal data model (separate access levels). The translation code is non-trivial, and so +# lives in this service. +module ProtectedBranches + class LegacyApiUpdateService < BaseService + def execute(protected_branch) + @developers_can_push = params.delete(:developers_can_push) + @developers_can_merge = params.delete(:developers_can_merge) + + @protected_branch = protected_branch + + protected_branch.transaction do + delete_redundant_access_levels + + case @developers_can_push + when true + params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }] + when false + params[:push_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }] + end + + case @developers_can_merge + when true + params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::DEVELOPER }] + when false + params[:merge_access_levels_attributes] = [{ access_level: Gitlab::Access::MASTER }] + end + + service = ProtectedBranches::UpdateService.new(@project, @current_user, @params) + service.execute(protected_branch) + end + end + + private + + def delete_redundant_access_levels + unless @developers_can_merge.nil? + @protected_branch.merge_access_levels.destroy_all + end + + unless @developers_can_push.nil? + @protected_branch.push_access_levels.destroy_all + end + end + end +end diff --git a/lib/api/branches.rb b/lib/api/branches.rb index cdef1b546a9..0791a110c39 100644 --- a/lib/api/branches.rb +++ b/lib/api/branches.rb @@ -81,9 +81,9 @@ module API service_args = [user_project, current_user, protected_branch_params] protected_branch = if protected_branch - ::ProtectedBranches::ApiUpdateService.new(*service_args).execute(protected_branch) + ::ProtectedBranches::LegacyApiUpdateService.new(*service_args).execute(protected_branch) else - ::ProtectedBranches::ApiCreateService.new(*service_args).execute + ::ProtectedBranches::LegacyApiCreateService.new(*service_args).execute end if protected_branch.valid? -- cgit v1.2.1