Class: Ci::Catalog::Resources::CreateService
- Inherits:
-
Object
- Object
- Ci::Catalog::Resources::CreateService
- Includes:
- Gitlab::Allowable
- Defined in:
- app/services/ci/catalog/resources/create_service.rb
Instance Attribute Summary collapse
-
#current_user ⇒ Object
readonly
Returns the value of attribute current_user.
-
#project ⇒ Object
readonly
Returns the value of attribute project.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(project, user) ⇒ CreateService
constructor
A new instance of CreateService.
Methods included from Gitlab::Allowable
Constructor Details
#initialize(project, user) ⇒ CreateService
Returns a new instance of CreateService.
11 12 13 14 |
# File 'app/services/ci/catalog/resources/create_service.rb', line 11 def initialize(project, user) @current_user = user @project = project end |
Instance Attribute Details
#current_user ⇒ Object (readonly)
Returns the value of attribute current_user.
9 10 11 |
# File 'app/services/ci/catalog/resources/create_service.rb', line 9 def current_user @current_user end |
#project ⇒ Object (readonly)
Returns the value of attribute project.
9 10 11 |
# File 'app/services/ci/catalog/resources/create_service.rb', line 9 def project @project end |
Instance Method Details
#execute ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/services/ci/catalog/resources/create_service.rb', line 16 def execute raise Gitlab::Access::AccessDeniedError unless can?(current_user, :add_catalog_resource, project) verified_namespace = Ci::Catalog::VerifiedNamespace.for_project(project) catalog_resource = Ci::Catalog::Resource.new( project: project, verification_level: verified_namespace&.verification_level || :unverified ) if catalog_resource.valid? catalog_resource.save! ServiceResponse.success(payload: catalog_resource) else ServiceResponse.error(message: catalog_resource.errors..join(', ')) end end |