diff --git a/lib/api/files.rb b/lib/api/files.rb index c7b30cf2f0768f028bb1828a17d4d78cc60ca349..e0ea6d7dd1dcedd191c63cdca3582f532973513b 100644 --- a/lib/api/files.rb +++ b/lib/api/files.rb @@ -3,26 +3,6 @@ module API class Files < Grape::API before { authenticate! } - helpers do - def commit_params(attrs) - { - file_path: attrs[:file_path], - current_branch: attrs[:branch_name], - target_branch: attrs[:branch_name], - commit_message: attrs[:commit_message], - file_content: attrs[:content], - file_content_encoding: attrs[:encoding] - } - end - - def commit_response(attrs) - { - file_path: attrs[:file_path], - branch_name: attrs[:branch_name], - } - end - end - resource :projects do # Get file from repository # File content is Base64 encoded @@ -93,11 +73,17 @@ module API required_attributes! [:file_path, :branch_name, :content, :commit_message] attrs = attributes_for_keys [:file_path, :branch_name, :content, :commit_message, :encoding] - result = ::Files::CreateService.new(user_project, current_user, commit_params(attrs)).execute + branch_name = attrs.delete(:branch_name) + file_path = attrs.delete(:file_path) + result = ::Files::CreateService.new(user_project, current_user, attrs, branch_name, file_path).execute if result[:status] == :success status(201) - commit_response(attrs) + + { + file_path: file_path, + branch_name: branch_name + } else render_api_error!(result[:message], 400) end @@ -119,11 +105,17 @@ module API required_attributes! [:file_path, :branch_name, :content, :commit_message] attrs = attributes_for_keys [:file_path, :branch_name, :content, :commit_message, :encoding] - result = ::Files::UpdateService.new(user_project, current_user, commit_params(attrs)).execute + branch_name = attrs.delete(:branch_name) + file_path = attrs.delete(:file_path) + result = ::Files::UpdateService.new(user_project, current_user, attrs, branch_name, file_path).execute if result[:status] == :success status(200) - commit_response(attrs) + + { + file_path: file_path, + branch_name: branch_name + } else http_status = result[:http_status] || 400 render_api_error!(result[:message], http_status) @@ -146,11 +138,17 @@ module API required_attributes! [:file_path, :branch_name, :commit_message] attrs = attributes_for_keys [:file_path, :branch_name, :commit_message] - result = ::Files::DeleteService.new(user_project, current_user, commit_params(attrs)).execute + branch_name = attrs.delete(:branch_name) + file_path = attrs.delete(:file_path) + result = ::Files::DeleteService.new(user_project, current_user, attrs, branch_name, file_path).execute if result[:status] == :success status(200) - commit_response(attrs) + + { + file_path: file_path, + branch_name: branch_name + } else render_api_error!(result[:message], 400) end