diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 17:34:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-20 17:34:42 +0300 |
commit | 9f46488805e86b1bc341ea1620b866016c2ce5ed (patch) | |
tree | f9748c7e287041e37d6da49e0a29c9511dc34768 /app/services/base_service.rb | |
parent | dfc92d081ea0332d69c8aca2f0e745cb48ae5e6d (diff) |
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
Diffstat (limited to 'app/services/base_service.rb')
-rw-r--r-- | app/services/base_service.rb | 73 |
1 files changed, 10 insertions, 63 deletions
diff --git a/app/services/base_service.rb b/app/services/base_service.rb index bc0b968f516..b4c4b6980a8 100644 --- a/app/services/base_service.rb +++ b/app/services/base_service.rb @@ -1,7 +1,16 @@ # frozen_string_literal: true +# This is the original root class for service related classes, +# and due to historical reason takes a project as scope. +# Later separate base classes for different scopes will be created, +# and existing service will use these one by one. +# After all are migrated, we can remove this class. +# +# TODO: New services should consider inheriting from +# BaseContainerService, or create new base class: +# https://gitlab.com/gitlab-org/gitlab/-/issues/216672 class BaseService - include Gitlab::Allowable + include BaseServiceUtility attr_accessor :project, :current_user, :params @@ -9,67 +18,5 @@ class BaseService @project, @current_user, @params = project, user, params.dup end - def notification_service - NotificationService.new - end - - def event_service - EventCreateService.new - end - - def todo_service - TodoService.new - end - - def log_info(message) - Gitlab::AppLogger.info message - end - - def log_error(message) - Gitlab::AppLogger.error message - end - - def system_hook_service - SystemHooksService.new - end - delegate :repository, to: :project - - # Add an error to the specified model for restricted visibility levels - def deny_visibility_level(model, denied_visibility_level = nil) - denied_visibility_level ||= model.visibility_level - - level_name = Gitlab::VisibilityLevel.level_name(denied_visibility_level).downcase - - model.errors.add(:visibility_level, "#{level_name} has been restricted by your GitLab administrator") - end - - def visibility_level - params[:visibility].is_a?(String) ? Gitlab::VisibilityLevel.level_value(params[:visibility]) : params[:visibility_level] - end - - private - - # Return a Hash with an `error` status - # - # message - Error message to include in the Hash - # http_status - Optional HTTP status code override (default: nil) - # pass_back - Additional attributes to be included in the resulting Hash - def error(message, http_status = nil, pass_back: {}) - result = { - message: message, - status: :error - }.reverse_merge(pass_back) - - result[:http_status] = http_status if http_status - result - end - - # Return a Hash with a `success` status - # - # pass_back - Additional attributes to be included in the resulting Hash - def success(pass_back = {}) - pass_back[:status] = :success - pass_back - end end |