Class: Packages::Maven::Metadata::AppendPackageFileService

Inherits:
Object
  • Object
show all
Defined in:
app/services/packages/maven/metadata/append_package_file_service.rb

Constant Summary collapse

XML_CONTENT_TYPE =
'application/xml'
DEFAULT_CONTENT_TYPE =
'application/octet-stream'
MD5_FILE_NAME =
"#{Metadata.filename}.md5"
SHA1_FILE_NAME =
"#{Metadata.filename}.sha1"
SHA256_FILE_NAME =
"#{Metadata.filename}.sha256"
SHA512_FILE_NAME =
"#{Metadata.filename}.sha512"

Instance Method Summary collapse

Constructor Details

#initialize(package:, metadata_content:) ⇒ AppendPackageFileService

Returns a new instance of AppendPackageFileService.



15
16
17
18
# File 'app/services/packages/maven/metadata/append_package_file_service.rb', line 15

def initialize(package:, metadata_content:)
  @package = package
  @metadata_content = 
end

Instance Method Details

#executeObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/services/packages/maven/metadata/append_package_file_service.rb', line 20

def execute
  return ServiceResponse.error(message: 'package is not set') unless @package
  return ServiceResponse.error(message: 'metadata content is not set') unless @metadata_content

  file_md5 = digest_from(@metadata_content, :md5)
  file_sha1 = digest_from(@metadata_content, :sha1)
  file_sha256 = digest_from(@metadata_content, :sha256)
  file_sha512 = digest_from(@metadata_content, :sha512)

  @package.transaction do
    (
      content: @metadata_content,
      file_name: Metadata.filename,
      content_type: XML_CONTENT_TYPE,
      sha1: file_sha1,
      md5: file_md5,
      sha256: file_sha256
    )

    (content: file_md5, file_name: MD5_FILE_NAME) unless Gitlab::FIPS.enabled?
    (content: file_sha1, file_name: SHA1_FILE_NAME)
    (content: file_sha256, file_name: SHA256_FILE_NAME)
    (content: file_sha512, file_name: SHA512_FILE_NAME)
  end

  ServiceResponse.success(message: 'New metadata package file created')
end