public function saveConfiguration($data)
{
$configurationName = Utils::sanitize($data["dataSetName"]);
$configurationID = null;
if (array_key_exists("configurationID", $data)) {
$configurationID = $data["configurationID"];
unset($data["configurationID"]);
}
unset($data["action"]);
unset($data["dataSetName"]);
$content = addslashes(json_encode($data));
$now = Utils::getCurrentDatetime();
$nowUnixTime = Utils::convertDatetimeToTimestamp($now);
$prefix = Core::getDbTablePrefix();
$accountID = $this->accountID;
// if this is a new configuration, create the main record
if ($configurationID == null) {
$response = Core::$db->query("\n\t\t\t\tINSERT INTO {$prefix}configurations (status, date_created, account_id)\n\t\t\t\tVALUES ('private', '{$now}', {$accountID})\n\t\t\t");
if ($response["success"]) {
$configurationID = mysqli_insert_id(Core::$db->getDBLink());
} else {
return array("success" => false, "message" => "There was a problem saving the configuration: " . $response["errorMessage"]);
}
}
$response2 = Core::$db->query("\n INSERT INTO {$prefix}configuration_history (configuration_id, last_updated, configuration_name, content)\n VALUES ({$configurationID}, '{$now}', '" . $configurationName . "', '" . $content . "')\n ");
if ($response2["success"]) {
$this->truncateDataSetHistory($configurationID);
return array("success" => true, "message" => $configurationID, "lastUpdated" => $nowUnixTime);
} else {
return array("success" => false, "message" => "There was a problem saving the configuration: " . $response["errorMessage"]);
}
}