Re-use the database object

This commit is contained in:
FusionPBX
2024-08-05 15:07:13 -06:00
committed by GitHub
parent cd1cc70044
commit 163403acc7

View File

@@ -39,13 +39,12 @@
public function __construct($params = []) {
//preset the the values
$database = null;
$settings = null;
$domain_uuid = null;
//use the parameters to set the values if they exist
if (isset($params['database'])) {
$database = $params['database'];
$this->database = $params['database'];
}
if (isset($params['settings'])) {
$settings = $params['settings'];
@@ -55,20 +54,19 @@
}
//check if we can use the settings object to get the database object
if (!empty($settings) && empty($database)) {
$database = $settings->database();
if (!empty($settings) && empty($this->database)) {
$this->database = $settings->database();
}
//fill in missing
if (empty($database)) {
$database = database::new();
if (empty($this->database)) {
$this->database = database::new();
}
if (empty($settings)) {
$settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]);
$settings = new settings(['database' => $this->database, 'domain_uuid' => $domain_uuid]);
}
//assign to the object
$this->database = $database;
$this->settings = $settings;
$this->domain_uuid = $domain_uuid;
@@ -142,8 +140,7 @@
$sql .= "where device_address = :device_address ";
$sql .= "and device_address <> '000000000000' ";
$parameters['device_address'] = $device_address;
$database = new database;
$num_rows = $database->select($sql, $parameters, 'column');
$num_rows = $this->database->select($sql, $parameters, 'column');
if ($num_rows > 0) {
return true;
}
@@ -236,8 +233,7 @@
$parameters['device_user_uuid'] = $device_user_uuid;
}
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$database_contacts = $database->select($sql, $parameters, 'all');
$database_contacts = $this->database->select($sql, $parameters, 'all');
if (is_array($database_contacts)) {
$x = 0;
foreach ($database_contacts as &$row) {
@@ -312,8 +308,7 @@
$sql = "select domain_name from v_domains ";
$sql .= "where domain_uuid = :domain_uuid ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$domain_name = $database->select($sql, $parameters, 'column');
$domain_name = $this->database->select($sql, $parameters, 'column');
unset($sql, $parameters);
}
@@ -341,8 +336,7 @@
$parameters['domain_uuid'] = $domain_uuid;
}
$parameters['device_address'] = $device_address;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
unset($sql, $parameters);
if (is_array($row) && sizeof($row) != 0) {
@@ -370,8 +364,7 @@
$parameters['device_provisioned_method'] = (isset($_SERVER["HTTPS"]) ? 'https' : 'http');
$parameters['device_provisioned_ip'] = $_SERVER['REMOTE_ADDR'];
$parameters['device_provisioned_agent'] = $_SERVER['HTTP_USER_AGENT'];
$database = new database;
$database->execute($sql, $parameters);
$this->database->execute($sql, $parameters);
unset($sql, $parameters);
//set the variables from values in the database
@@ -398,8 +391,7 @@
$sql .= "and device_enabled = 'true' ";
$sql .= "limit 1 ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
if (!empty($row) && is_array($row) && sizeof($row) != 0) {
$device_label = $row["device_label"];
$device_template = $row["device_template"];
@@ -566,14 +558,13 @@
$p->add("device_edit", "temp");
//save to the data
$database = new database;
$database->app_name = 'devices';
$database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
$this->database->app_name = 'devices';
$this->database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
if (!empty($device_uuid)) {
$database->uuid($device_uuid);
$this->database->uuid($device_uuid);
}
$database->save($array);
$message = $database->message;
$this->database->save($array);
$message = $this->database->message;
//remove the temporary permission
$p->delete("device_add", "temp");
@@ -592,8 +583,7 @@
$parameters['domain_uuid'] = $domain_uuid;
}
$parameters['device_uuid'] = $device_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$device_uuid_alternate = $row["device_uuid_alternate"];
unset($sql, $row, $parameters);
@@ -608,8 +598,7 @@
$parameters['domain_uuid'] = $domain_uuid;
}
$parameters['device_uuid'] = $device_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
$row = $this->database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
if ($row["device_enabled"] == "true") {
$device_label = $row["device_label"];
@@ -634,8 +623,7 @@
$sql .= "where device_profile_uuid = :device_profile_uuid ";
$sql .= "and profile_setting_enabled = 'true' ";
$parameters['device_profile_uuid'] = $device_profile_uuid;
$database = new database;
$device_profile_settings = $database->select($sql, $parameters, 'all');
$device_profile_settings = $this->database->select($sql, $parameters, 'all');
if (is_array($device_profile_settings) && sizeof($device_profile_settings) != 0) {
foreach($device_profile_settings as $row) {
$key = $row['profile_setting_name'];
@@ -652,8 +640,7 @@
$sql .= "where device_uuid = :device_uuid ";
$sql .= "and device_setting_enabled = 'true' ";
$parameters['device_uuid'] = $device_uuid;
$database = new database;
$device_settings = $database->select($sql, $parameters, 'all');
$device_settings = $this->database->select($sql, $parameters, 'all');
if (is_array($device_settings) && sizeof($device_settings) != 0) {
foreach($device_settings as $row) {
$key = $row['device_setting_subcategory'];
@@ -693,9 +680,8 @@
$sql .= "where device_uuid = :device_uuid ";
$sql .= "and (enabled = 'true' or enabled is null or enabled = '') ";
$parameters['device_uuid'] = $device_uuid;
$database = new database;
//$database_device_lines = $database->select($sql, $parameters, 'all');
foreach ($database->select($sql, $parameters, 'all') as $row) {
//$database_device_lines = $this->database->select($sql, $parameters, 'all');
foreach ($this->database->select($sql, $parameters, 'all') as $row) {
$id = $row['line_number'];
$device_lines[$id] = $row;
}
@@ -739,8 +725,7 @@
$sql .= "cast(profile_key_id as numeric) asc ";
}
$parameters['device_profile_uuid'] = $device_profile_uuid;
$database = new database;
$keys = $database->select($sql, $parameters, 'all');
$keys = $this->database->select($sql, $parameters, 'all');
//add the profile keys to the device keys array
if (is_array($keys) && sizeof($keys) != 0) {
@@ -793,8 +778,7 @@
$sql .= "cast(device_key_id as numeric) asc ";
}
$parameters['device_uuid'] = $device_uuid;
$database = new database;
$keys = $database->select($sql, $parameters, 'all');
$keys = $this->database->select($sql, $parameters, 'all');
//override profile keys with the device keys
if (is_array($keys)) {
@@ -932,8 +916,7 @@
$sql .= "and directory_visible = 'true' ";
$sql .= "order by number_alias, extension asc ";
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
$extensions = $database->select($sql, $parameters, 'all');
$extensions = $this->database->select($sql, $parameters, 'all');
if (is_array($extensions) && sizeof($extensions) != 0) {
foreach ($extensions as $row) {
//get the contact_uuid
@@ -1162,8 +1145,7 @@
if (is_uuid($device_user_uuid)) {
$sql = "select contact_uuid from v_users where user_uuid = :device_user_uuid ";
$parameters['device_user_uuid'] = $device_user_uuid;
$database = new database;
$contact_uuid = $database->select($sql, $parameters, 'column');
$contact_uuid = $this->database->select($sql, $parameters, 'column');
$view->assign("ldap_username", "uid=" . $contact_uuid . "," . $this->settings->get('provision','grandstream_ldap_user_base', ''));
$view->assign("ldap_password",md5($laddr_salt.$device_user_uuid));
unset($sql, $parameters);
@@ -1295,8 +1277,7 @@
$sql = "select * from v_devices ";
//$sql .= "where domain_uuid = :domain_uuid ";
//$parameters['domain_uuid'] = $this->domain_uuid;
$database = new database;
$result = $database->select($sql, null, 'all');
$result = $this->database->select($sql, null, 'all');
//process each device
if (is_array($result)) {
@@ -1306,7 +1287,7 @@
$device_uuid = $row["device_uuid"];
$device_address = $row["device_address"];
$device_label = $row["device_label"];
$device_vendor = strtolower($row["device_vendor"]);
$device_vendor = strtolower($row["device_vendor"] ?? '');
$device_model = $row["device_model"];
$device_firmware_version = $row["device_firmware_version"];
$device_enabled = $row["device_enabled"];