Class: Packages::TerraformModule::Metadata::UpdateService

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

Instance Method Summary collapse

Constructor Details

#initialize(package, metadata_hash) ⇒ UpdateService

Returns a new instance of UpdateService.



9
10
11
12
# File 'app/services/packages/terraform_module/metadata/update_service.rb', line 9

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

Instance Method Details

#executeObject



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

def execute
  terraform_module_metadatum.assign_attributes(fields: )

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

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

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