Class: Packages::TerraformModule::Metadata::CreateService

Inherits:
Object
  • Object
show all
Defined in:
app/services/packages/terraform_module/metadata/create_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(package, metadata_hash) ⇒ CreateService

Returns a new instance of CreateService.



7
8
9
10
# File 'app/services/packages/terraform_module/metadata/create_service.rb', line 7

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

Instance Method Details

#executeObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/services/packages/terraform_module/metadata/create_service.rb', line 12

def execute
   = ::Packages::TerraformModule::Metadatum.new(
    package: package,
    project: package.project,
    fields: ,
    updated_at: Time.current,
    created_at: Time.current
  )

  if .valid?
    ::Packages::TerraformModule::Metadatum.upsert(.attributes, returning: false)

    ServiceResponse.success(payload: { metadata:  })
  else
    Gitlab::ErrorTracking.track_exception(
      ActiveRecord::RecordInvalid.new(),
      class: self.class.name,
      package_id: package.id
    )

    ServiceResponse.error(message: .errors.full_messages, reason: :bad_request)
  end
end