diff options
Diffstat (limited to 'app/services/packages/nuget/update_package_from_metadata_service.rb')
-rw-r--r-- | app/services/packages/nuget/update_package_from_metadata_service.rb | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/app/services/packages/nuget/update_package_from_metadata_service.rb b/app/services/packages/nuget/update_package_from_metadata_service.rb index 258f8c8f6aa..4cec4ed2fae 100644 --- a/app/services/packages/nuget/update_package_from_metadata_service.rb +++ b/app/services/packages/nuget/update_package_from_metadata_service.rb @@ -54,13 +54,16 @@ module Packages update_linked_package end - update_package(target_package) + build_infos = package_to_destroy&.build_infos || [] + + update_package(target_package, build_infos) + update_symbol_files(target_package, package_to_destroy) if symbol_package? ::Packages::UpdatePackageFileService.new(@package_file, package_id: target_package.id, file_name: package_filename) .execute package_to_destroy&.destroy! end - def update_package(package) + def update_package(package, build_infos) return if symbol_package? ::Packages::Nuget::SyncMetadatumService @@ -71,28 +74,21 @@ module Packages .new(package, package_tags) .execute + package.build_infos << build_infos if build_infos.any? rescue StandardError => e raise InvalidMetadataError, e.message end + def update_symbol_files(package, package_to_destroy) + package_to_destroy.nuget_symbols.update_all(package_id: package.id) + end + def valid_metadata? fields = [package_name, package_version, package_description] fields << package_authors unless symbol_package? fields.all?(&:present?) end - def link_to_existing_package - package_to_destroy = @package_file.package - # Updating package_id updates the path where the file is stored. - # We must pass the file again so that CarrierWave can handle the update - @package_file.update!( - package_id: existing_package.id, - file: @package_file.file - ) - package_to_destroy.destroy! - existing_package - end - def update_linked_package @package_file.package.update!( name: package_name, @@ -106,12 +102,15 @@ module Packages end def existing_package - @package_file.project.packages - .nuget - .with_name(package_name) - .with_version(package_version) - .not_pending_destruction - .first + ::Packages::Nuget::PackageFinder + .new( + nil, + @package_file.project, + package_name: package_name, + package_version: package_version + ) + .execute + .first end strong_memoize_attr :existing_package |