Class: Packages::TerraformModule::ProcessPackageFileService

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
app/services/packages/terraform_module/process_package_file_service.rb

Constant Summary collapse

ExtractionError =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(package_file) ⇒ ProcessPackageFileService

Returns a new instance of ProcessPackageFileService.



10
11
12
# File 'app/services/packages/terraform_module/process_package_file_service.rb', line 10

def initialize(package_file)
  @package_file = package_file
end

Instance Method Details

#executeObject

Raises:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/services/packages/terraform_module/process_package_file_service.rb', line 14

def execute
  raise ExtractionError, 'invalid package file' unless valid_package_file?

  result = nil

  with_archive_file do |archive_file|
    result = ::Packages::TerraformModule::Metadata::ExtractFilesService.new(archive_file).execute
  end

  if result&.success?
    ::Packages::TerraformModule::Metadata::UpdateService.new(package_file.package, result.payload).execute
  end

  ServiceResponse.success
end