class Ey::Core::Client::DatabaseService

Attributes

database_server[RW]

@todo remove me next major revision

Public Instance Methods

destroy!() click to toggle source
# File lib/ey-core/models/database_service.rb, line 49
def destroy!
  connection.requests.new(self.connection.destroy_database_service("id" => self.id).body["request"])
end
save!() click to toggle source
# File lib/ey-core/models/database_service.rb, line 20
def save!
  requires :name, :provider_id

  server_info  = self.servers.map { |c| c.is_a?(Ey::Core::Client::DatabaseServer) ? c.attributes : c }

  server_info += [database_server] if database_server

  if server_info.size > 1
    raise ArgumentError, "only one server can be specified"
  elsif server_info.size < 1
    raise ArgumentError, "you must specify at least one server dude"
  end

  params = {
    "url"              => self.collection.url,
    "provider"         => self.provider_id,
    "database_server"  => server_info.first,
    "database_service" => {
      "name"          => self.name,
      "service_level" => self.service_level,
    },
  }

  if new_record?
    self.connection.requests.new(self.connection.create_database_service(params).body["request"])
  else raise NotImplementedError
  end
end