cloudfoundry/cloud_controller_ng

View on GitHub
app/actions/metadata_update.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'actions/labels_update'
require 'actions/annotations_update'

module VCAP::CloudController
  class MetadataUpdate
    class << self
      def update(resource, message, destroy_nil: true)
        return unless message.requested?(:metadata)

        LabelsUpdate.update(resource, message.labels, labels_klass(resource), destroy_nil:)
        AnnotationsUpdate.update(resource, message.annotations, annotations_klass(resource), destroy_nil:)
      end

      private

      def labels_klass(resource)
        resource.class.association_reflections[:labels].associated_class
      end

      def annotations_klass(resource)
        resource.class.association_reflections[:annotations].associated_class
      end
    end
  end
end