summaryrefslogtreecommitdiff
path: root/app/services/packages/create_package_file_service.rb
blob: 5723b0b47178e07535b5119e65ef80701d1dba61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true
module Packages
  class CreatePackageFileService
    attr_reader :package, :params

    def initialize(package, params)
      @package = package
      @params = params
    end

    def execute
      package_file = package.package_files.build(
        file:        params[:file],
        size:        params[:size],
        file_name:   params[:file_name],
        file_sha1:   params[:file_sha1],
        file_sha256: params[:file_sha256],
        file_md5:    params[:file_md5]
      )

      if params[:build].present?
        package_file.package_file_build_infos << package_file.package_file_build_infos.build(pipeline: params[:build].pipeline)
      end

      package_file.save!
      package_file
    end
  end
end