diff options
Diffstat (limited to 'app/services/files')
-rw-r--r-- | app/services/files/base_service.rb | 17 | ||||
-rw-r--r-- | app/services/files/create_service.rb | 52 | ||||
-rw-r--r-- | app/services/files/delete_service.rb | 36 | ||||
-rw-r--r-- | app/services/files/update_service.rb | 39 |
4 files changed, 0 insertions, 144 deletions
diff --git a/app/services/files/base_service.rb b/app/services/files/base_service.rb deleted file mode 100644 index bd245100955..00000000000 --- a/app/services/files/base_service.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Files - class BaseService < ::BaseService - attr_reader :ref, :path - - def initialize(project, user, params, ref, path = nil) - @project, @current_user, @params = project, user, params.dup - @ref = ref - @path = path - end - - private - - def repository - project.repository - end - end -end diff --git a/app/services/files/create_service.rb b/app/services/files/create_service.rb deleted file mode 100644 index 23833aa78ec..00000000000 --- a/app/services/files/create_service.rb +++ /dev/null @@ -1,52 +0,0 @@ -require_relative "base_service" - -module Files - class CreateService < BaseService - def execute - allowed = Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(ref) - - unless allowed - return error("You are not allowed to create file in this branch") - end - - file_name = File.basename(path) - file_path = path - - unless file_name =~ Gitlab::Regex.file_name_regex - return error( - 'Your changes could not be committed, because the file name ' + - Gitlab::Regex.file_name_regex_message - ) - end - - if project.empty_repo? - # everything is ok because repo does not have a commits yet - else - unless repository.branch_names.include?(ref) - return error("You can only create files if you are on top of a branch") - end - - blob = repository.blob_at_branch(ref, file_path) - - if blob - return error("Your changes could not be committed, because file with such name exists") - end - end - - - new_file_action = Gitlab::Satellite::NewFileAction.new(current_user, project, ref, file_path) - created_successfully = new_file_action.commit!( - params[:content], - params[:commit_message], - params[:encoding], - params[:new_branch] - ) - - if created_successfully - success - else - error("Your changes could not be committed, because the file has been changed") - end - end - end -end diff --git a/app/services/files/delete_service.rb b/app/services/files/delete_service.rb deleted file mode 100644 index 1497a0f883b..00000000000 --- a/app/services/files/delete_service.rb +++ /dev/null @@ -1,36 +0,0 @@ -require_relative "base_service" - -module Files - class DeleteService < BaseService - def execute - allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(ref) - - unless allowed - return error("You are not allowed to push into this branch") - end - - unless repository.branch_names.include?(ref) - return error("You can only create files if you are on top of a branch") - end - - blob = repository.blob_at_branch(ref, path) - - unless blob - return error("You can only edit text files") - end - - delete_file_action = Gitlab::Satellite::DeleteFileAction.new(current_user, project, ref, path) - - deleted_successfully = delete_file_action.commit!( - nil, - params[:commit_message] - ) - - if deleted_successfully - success - else - error("Your changes could not be committed, because the file has been changed") - end - end - end -end diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb deleted file mode 100644 index 0724d3ae634..00000000000 --- a/app/services/files/update_service.rb +++ /dev/null @@ -1,39 +0,0 @@ -require_relative "base_service" - -module Files - class UpdateService < BaseService - def execute - allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(ref) - - unless allowed - return error("You are not allowed to push into this branch") - end - - unless repository.branch_names.include?(ref) - return error("You can only create files if you are on top of a branch") - end - - blob = repository.blob_at_branch(ref, path) - - unless blob - return error("You can only edit text files") - end - - edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path) - edit_file_action.commit!( - params[:content], - params[:commit_message], - params[:encoding], - params[:new_branch] - ) - - success - rescue Gitlab::Satellite::CheckoutFailed => ex - error("Your changes could not be committed because ref '#{ref}' could not be checked out", 400) - rescue Gitlab::Satellite::CommitFailed => ex - error("Your changes could not be committed. Maybe there was nothing to commit?", 409) - rescue Gitlab::Satellite::PushFailed => ex - error("Your changes could not be committed. Maybe the file was changed by another process?", 409) - end - end -end |