cloudfoundry/cloud_controller_ng

View on GitHub
app/actions/app_find_or_create_skeleton.rb

Summary

Maintainability
A
0 mins
Test Coverage
module VCAP::CloudController
  class AppFindOrCreateSkeleton
    def initialize(user_audit_info)
      @user_audit_info = user_audit_info
    end

    def find_or_create(message:, space:)
      app = AppModel.find(name: message.name, space: space)

      if app.nil?
        relationships = { space: { data: { guid: space.guid } } }
        app_create_args = { name: message.name, relationships: relationships }.merge(message.app_lifecycle_hash)

        app_create_message = AppCreateMessage.new(app_create_args)
        lifecycle = AppLifecycleProvider.provide_for_create(app_create_message)
        app = AppCreate.new(@user_audit_info).create(app_create_message, lifecycle)
      end

      app
    end
  end
end