Class: IssuableBaseService

Inherits:
BaseContainerService show all
Defined in:
app/services/issuable_base_service.rb

Instance Attribute Summary

Attributes inherited from BaseContainerService

#container, #current_user, #group, #project

Class Method Summary collapse

Methods inherited from BaseContainerService

#group_container?, #namespace_container?, #project_container?, #project_group, #root_ancestor

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

#can?, #can_all?, #can_any?

Class Method Details

.constructor_container_arg(value) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'app/services/issuable_base_service.rb', line 51

def self.constructor_container_arg(value)
  # TODO: Dynamically determining the type of a constructor arg based on the class is an antipattern,
  # but the root cause is that epic services had inheritance issues where inheritance may not be the
  # appropriate pattern. Epic services like WorkItems::LegacyEpics::UpdateService need to use `group:`
  # as the container arg while other issuable services use `container:` or `project:`.
  # See more details in WorkItems::LegacyEpics::UpdateService comments.
  # Follow on issue to address this:
  # https://gitlab.com/gitlab-org/gitlab/-/issues/328438

  { container: value }
end