Class: Packages::Rubygems::CreatePackageFileService

Inherits:
Object
  • Object
show all
Defined in:
app/services/packages/rubygems/create_package_file_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(package:, params: {}) ⇒ CreatePackageFileService

Returns a new instance of CreatePackageFileService.



6
7
8
9
# File 'app/services/packages/rubygems/create_package_file_service.rb', line 6

def initialize(package:, params: {})
  @package = package
  @params = params
end

Instance Method Details

#executeObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/services/packages/rubygems/create_package_file_service.rb', line 11

def execute
  unless package.present?
    return ServiceResponse.error(message: 'Package is required', reason: :package_is_required)
  end

  package_file = ::Packages::CreatePackageFileService.new(package, params).execute

  package_file.run_after_commit_or_now do
    ::Packages::Rubygems::ExtractionWorker.perform_async(package_file.id)
  end

  ServiceResponse.success(payload: { package_file: package_file })
end