Class: Ci::Catalog::Resources::Versions::BuildComponentsService

Inherits:
Object
  • Object
show all
Defined in:
app/services/ci/catalog/resources/versions/build_components_service.rb

Overview

This service is called from the Versions::CreateService and responsible for building components for a release version.

Constant Summary collapse

MAX_COMPONENTS =
Ci::Catalog::ComponentsProject::COMPONENTS_LIMIT

Instance Method Summary collapse

Constructor Details

#initialize(release, version, components_data) ⇒ BuildComponentsService

Returns a new instance of BuildComponentsService.



12
13
14
15
16
17
18
19
# File 'app/services/ci/catalog/resources/versions/build_components_service.rb', line 12

def initialize(release, version, components_data)
  @release = release
  @version = version
  @components_data = components_data
  @project = release.project
  @components_project = Ci::Catalog::ComponentsProject.new(project)
  @errors = []
end

Instance Method Details

#executeObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/services/ci/catalog/resources/versions/build_components_service.rb', line 21

def execute
  components = if components_data
                 build_components_from_passed_data
               else
                 build_components_from_fetched_data
               end

  if errors.empty?
    ServiceResponse.success(payload: components)
  else
    ServiceResponse.error(message: errors.flatten.first(10).join(', '))
  end
end