Class: BaseContainerService
- Inherits:
-
Object
- Object
- BaseContainerService
- Includes:
- BaseServiceUtility, Gitlab::Utils::StrongMemoize
- Defined in:
- app/services/base_container_service.rb
Overview
Base class, scoped by container (project or group).
New or existing services which only require a project or group container should subclass BaseProjectService or BaseGroupService.
If you require a different but specific, non-polymorphic container consider creating a new subclass, and update the related comment at the top of the original BaseService.
Direct Known Subclasses
Achievements::BaseService, BaseGroupService, BaseProjectService, Ci::ChangeVariableService, Ci::ChangeVariablesService, Clusters::Agents::DeleteService, Clusters::Integrations::CreateService, ContainerExpirationPolicies::UpdateService, DependencyProxy::GroupSettings::UpdateService, DependencyProxy::ImageTtlGroupPolicies::UpdateService, IssuableBaseService, Issues::ConvertToTicketService, Issues::SetCrmContactsService, Namespaces::PackageSettings::UpdateService, Packages::MarkPackageForDestructionService, Packages::Maven::Metadata::SyncService, PreviewMarkdownService, Projects::ContainerRepository::BaseContainerRepositoryService, QuickActions::InterpretService, QuickActions::TargetService, Users::DismissCalloutService, VirtualRegistries::Packages::Maven::CachedResponses::CreateOrUpdateService, VirtualRegistries::Packages::Maven::HandleFileRequestService, WikiPages::BaseService, WorkItems::DataSync::BaseService
Instance Attribute Summary collapse
-
#container ⇒ Object
readonly
Returns the value of attribute container.
-
#current_user ⇒ Object
readonly
Returns the value of attribute current_user.
-
#group ⇒ Object
Returns the value of attribute group.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#project ⇒ Object
Returns the value of attribute project.
Instance Method Summary collapse
- #group_container? ⇒ Boolean
-
#initialize(container:, current_user: nil, params: {}) ⇒ BaseContainerService
constructor
A new instance of BaseContainerService.
- #namespace_container? ⇒ Boolean
- #project_container? ⇒ Boolean
- #project_group ⇒ Object
- #root_ancestor ⇒ Object
Methods included from BaseServiceUtility
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
Methods included from Gitlab::Allowable
Constructor Details
#initialize(container:, current_user: nil, params: {}) ⇒ BaseContainerService
Returns a new instance of BaseContainerService.
18 19 20 21 22 23 24 |
# File 'app/services/base_container_service.rb', line 18 def initialize(container:, current_user: nil, params: {}) @container = container @current_user = current_user @params = params.dup handle_container_type(container) end |
Instance Attribute Details
#container ⇒ Object (readonly)
Returns the value of attribute container.
16 17 18 |
# File 'app/services/base_container_service.rb', line 16 def container @container end |
#current_user ⇒ Object (readonly)
Returns the value of attribute current_user.
16 17 18 |
# File 'app/services/base_container_service.rb', line 16 def current_user @current_user end |
#group ⇒ Object
Returns the value of attribute group.
15 16 17 |
# File 'app/services/base_container_service.rb', line 15 def group @group end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
16 17 18 |
# File 'app/services/base_container_service.rb', line 16 def params @params end |
#project ⇒ Object
Returns the value of attribute project.
15 16 17 |
# File 'app/services/base_container_service.rb', line 15 def project @project end |
Instance Method Details
#group_container? ⇒ Boolean
30 31 32 |
# File 'app/services/base_container_service.rb', line 30 def group_container? container.is_a?(::Group) end |
#namespace_container? ⇒ Boolean
34 35 36 |
# File 'app/services/base_container_service.rb', line 34 def namespace_container? container.is_a?(::Namespace) end |
#project_container? ⇒ Boolean
26 27 28 |
# File 'app/services/base_container_service.rb', line 26 def project_container? container.is_a?(::Project) end |
#project_group ⇒ Object
38 39 40 |
# File 'app/services/base_container_service.rb', line 38 def project_group project&.group end |
#root_ancestor ⇒ Object
43 44 45 |
# File 'app/services/base_container_service.rb', line 43 def root_ancestor project_group&.root_ancestor || group&.root_ancestor end |