class Services::EnvironmentCreator

Public Class Methods

call(app_id:, name:, buildpack_id:, public:, default_branch:, settings:) click to toggle source
# File lib/busbar_cli/services/environment_creator.rb, line 3
def self.call(app_id:, name:, buildpack_id:, public:, default_branch:, settings:)
  new(app_id, name, buildpack_id, public, default_branch, settings).call
end
new(app_id, name, buildpack_id, public, default_branch, settings) click to toggle source
# File lib/busbar_cli/services/environment_creator.rb, line 7
def initialize(app_id, name, buildpack_id, public, default_branch, settings)
  @app_id = app_id
  @name = name

  @params = {
    app_id: app_id,
    name: name,
    buildpack_id: buildpack_id,
    public: public,
    default_branch: default_branch
  }

  @params = @params.merge(settings: settings) unless settings.nil?
end

Public Instance Methods

call() click to toggle source
# File lib/busbar_cli/services/environment_creator.rb, line 22
def call
  raise_environment_creation_issue unless EnvironmentsRepository.create(@params)

  puts "Creating environment #{@name} on app #{@app_id}. This may take a while..."

  sleep(1) until environment.state == 'available'
end

Private Instance Methods

environment() click to toggle source
# File lib/busbar_cli/services/environment_creator.rb, line 32
def environment
  EnvironmentsRepository.find(app_id: @app_id, environment_name: @name)
end
raise_environment_creation_issue() click to toggle source
# File lib/busbar_cli/services/environment_creator.rb, line 36
def raise_environment_creation_issue
  puts "There was an issue on the creation of #{@app_id} #{@name}.\n" \
       "Make sure that the new environment name:\n"\
       "- Is unique for its app. Ex: the same app can't have two staging environments\n" \
       '- Contains only letters, numbers, dots(.) or dashes(-)'

  exit 0
end