Skip to content
Snippets Groups Projects
Commit f0d2d281 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Merge branch 'refactoring/context_into_services' into 'master'

Refactoring context Into services

To prevent confusion where to write logic. Context or Service?
parents 7527408a 4d82e9ed
No related branches found
No related tags found
No related merge requests found
Showing
with 28 additions and 28 deletions
Loading
@@ -19,7 +19,7 @@ class Admin::ProjectsController < Admin::ApplicationController
Loading
@@ -19,7 +19,7 @@ class Admin::ProjectsController < Admin::ApplicationController
end end
   
def transfer def transfer
result = ::Projects::TransferContext.new(@project, current_user, project: params).execute(:admin) result = ::Projects::TransferService.new(@project, current_user, project: params).execute(:admin)
   
if result if result
redirect_to [:admin, @project] redirect_to [:admin, @project]
Loading
Loading
Loading
@@ -13,7 +13,7 @@ class Projects::BlobController < Projects::ApplicationController
Loading
@@ -13,7 +13,7 @@ class Projects::BlobController < Projects::ApplicationController
end end
   
def destroy def destroy
result = Files::DeleteContext.new(@project, current_user, params, @ref, @path).execute result = Files::DeleteService.new(@project, current_user, params, @ref, @path).execute
   
if result[:status] == :success if result[:status] == :success
flash[:notice] = "Your changes have been successfully committed" flash[:notice] = "Your changes have been successfully committed"
Loading
Loading
Loading
@@ -7,7 +7,7 @@ class Projects::EditTreeController < Projects::BaseTreeController
Loading
@@ -7,7 +7,7 @@ class Projects::EditTreeController < Projects::BaseTreeController
end end
   
def update def update
result = Files::UpdateContext.new(@project, current_user, params, @ref, @path).execute result = Files::UpdateService.new(@project, current_user, params, @ref, @path).execute
   
if result[:status] == :success if result[:status] == :success
flash[:notice] = "Your changes have been successfully committed" flash[:notice] = "Your changes have been successfully committed"
Loading
Loading
Loading
@@ -89,7 +89,7 @@ class Projects::IssuesController < Projects::ApplicationController
Loading
@@ -89,7 +89,7 @@ class Projects::IssuesController < Projects::ApplicationController
end end
   
def bulk_update def bulk_update
result = Issues::BulkUpdateContext.new(project, current_user, params).execute result = Issues::BulkUpdateService.new(project, current_user, params).execute
redirect_to :back, notice: "#{result[:count]} issues updated" redirect_to :back, notice: "#{result[:count]} issues updated"
end end
   
Loading
Loading
Loading
@@ -6,7 +6,7 @@ class Projects::NewTreeController < Projects::BaseTreeController
Loading
@@ -6,7 +6,7 @@ class Projects::NewTreeController < Projects::BaseTreeController
   
def update def update
file_path = File.join(@path, File.basename(params[:file_name])) file_path = File.join(@path, File.basename(params[:file_name]))
result = Files::CreateContext.new(@project, current_user, params, @ref, file_path).execute result = Files::CreateService.new(@project, current_user, params, @ref, file_path).execute
   
if result[:status] == :success if result[:status] == :success
flash[:notice] = "Your changes have been successfully committed" flash[:notice] = "Your changes have been successfully committed"
Loading
Loading
Loading
@@ -5,7 +5,7 @@ class Projects::NotesController < Projects::ApplicationController
Loading
@@ -5,7 +5,7 @@ class Projects::NotesController < Projects::ApplicationController
before_filter :authorize_admin_note!, only: [:update, :destroy] before_filter :authorize_admin_note!, only: [:update, :destroy]
   
def index def index
@notes = Notes::LoadContext.new(project, current_user, params).execute @notes = Notes::LoadService.new(project, current_user, params).execute
   
notes_json = { notes: [] } notes_json = { notes: [] }
   
Loading
@@ -20,7 +20,7 @@ class Projects::NotesController < Projects::ApplicationController
Loading
@@ -20,7 +20,7 @@ class Projects::NotesController < Projects::ApplicationController
end end
   
def create def create
@note = Notes::CreateContext.new(project, current_user, params).execute @note = Notes::CreateService.new(project, current_user, params).execute
   
respond_to do |format| respond_to do |format|
format.json { render_note_json(@note) } format.json { render_note_json(@note) }
Loading
Loading
Loading
@@ -20,7 +20,7 @@ class ProjectsController < ApplicationController
Loading
@@ -20,7 +20,7 @@ class ProjectsController < ApplicationController
end end
   
def create def create
@project = ::Projects::CreateContext.new(current_user, params[:project]).execute @project = ::Projects::CreateService.new(current_user, params[:project]).execute
   
respond_to do |format| respond_to do |format|
flash[:notice] = 'Project was successfully created.' if @project.saved? flash[:notice] = 'Project was successfully created.' if @project.saved?
Loading
@@ -36,7 +36,7 @@ class ProjectsController < ApplicationController
Loading
@@ -36,7 +36,7 @@ class ProjectsController < ApplicationController
end end
   
def update def update
status = ::Projects::UpdateContext.new(@project, current_user, params).execute status = ::Projects::UpdateService.new(@project, current_user, params).execute
   
respond_to do |format| respond_to do |format|
if status if status
Loading
@@ -51,7 +51,7 @@ class ProjectsController < ApplicationController
Loading
@@ -51,7 +51,7 @@ class ProjectsController < ApplicationController
end end
   
def transfer def transfer
::Projects::TransferContext.new(project, current_user, params).execute ::Projects::TransferService.new(project, current_user, params).execute
end end
   
def show def show
Loading
@@ -89,7 +89,7 @@ class ProjectsController < ApplicationController
Loading
@@ -89,7 +89,7 @@ class ProjectsController < ApplicationController
end end
   
def fork def fork
@forked_project = ::Projects::ForkContext.new(project, current_user).execute @forked_project = ::Projects::ForkService.new(project, current_user).execute
   
respond_to do |format| respond_to do |format|
format.html do format.html do
Loading
Loading
Loading
@@ -5,9 +5,9 @@ class SearchController < ApplicationController
Loading
@@ -5,9 +5,9 @@ class SearchController < ApplicationController
   
if @project if @project
return access_denied! unless can?(current_user, :download_code, @project) return access_denied! unless can?(current_user, :download_code, @project)
@search_results = Search::ProjectContext.new(@project, current_user, params).execute @search_results = Search::ProjectService.new(@project, current_user, params).execute
else else
@search_results = Search::GlobalContext.new(current_user, params).execute @search_results = Search::GlobalService.new(current_user, params).execute
end end
end end
end end
class BaseContext class BaseService
attr_accessor :project, :current_user, :params attr_accessor :project, :current_user, :params
   
def initialize(project, user, params) def initialize(project, user, params)
Loading
Loading
module Files module Files
class BaseContext < ::BaseContext class BaseService < ::BaseService
attr_reader :ref, :path attr_reader :ref, :path
   
def initialize(project, user, params, ref, path = nil) def initialize(project, user, params, ref, path = nil)
Loading
Loading
require_relative "base_context" require_relative "base_service"
   
module Files module Files
class CreateContext < BaseContext class CreateService < BaseService
def execute def execute
allowed = if project.protected_branch?(ref) allowed = if project.protected_branch?(ref)
can?(current_user, :push_code_to_protected_branches, project) can?(current_user, :push_code_to_protected_branches, project)
Loading
Loading
require_relative "base_context" require_relative "base_service"
   
module Files module Files
class DeleteContext < BaseContext class DeleteService < BaseService
def execute def execute
allowed = if project.protected_branch?(ref) allowed = if project.protected_branch?(ref)
can?(current_user, :push_code_to_protected_branches, project) can?(current_user, :push_code_to_protected_branches, project)
Loading
Loading
require_relative "base_context" require_relative "base_service"
   
module Files module Files
class UpdateContext < BaseContext class UpdateService < BaseService
def execute def execute
allowed = if project.protected_branch?(ref) allowed = if project.protected_branch?(ref)
can?(current_user, :push_code_to_protected_branches, project) can?(current_user, :push_code_to_protected_branches, project)
Loading
Loading
module Issues module Issues
class BulkUpdateContext < BaseContext class BulkUpdateService < BaseService
def execute def execute
update_data = params[:update] update_data = params[:update]
   
Loading
Loading
module Notes module Notes
class CreateContext < BaseContext class CreateService < BaseService
def execute def execute
note = project.notes.new(params[:note]) note = project.notes.new(params[:note])
note.author = current_user note.author = current_user
Loading
Loading
module Notes module Notes
class LoadContext < BaseContext class LoadService < BaseService
def execute def execute
target_type = params[:target_type] target_type = params[:target_type]
target_id = params[:target_id] target_id = params[:target_id]
Loading
Loading
module Projects module Projects
class CreateContext < BaseContext class CreateService < BaseService
def initialize(user, params) def initialize(user, params)
@current_user, @params = user, params.dup @current_user, @params = user, params.dup
end end
Loading
Loading
module Projects module Projects
class ForkContext < BaseContext class ForkService < BaseService
include Gitlab::ShellAdapter include Gitlab::ShellAdapter
   
def initialize(project, user) def initialize(project, user)
Loading
Loading
module Projects module Projects
class TransferContext < BaseContext class TransferService < BaseService
def execute(role = :default) def execute(role = :default)
namespace_id = params[:project].delete(:namespace_id) namespace_id = params[:project].delete(:namespace_id)
allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin
Loading
Loading
module Projects module Projects
class UpdateContext < BaseContext class UpdateService < BaseService
def execute(role = :default) def execute(role = :default)
params[:project].delete(:namespace_id) params[:project].delete(:namespace_id)
# check that user is allowed to set specified visibility_level # check that user is allowed to set specified visibility_level
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment