update
This commit is contained in:
@@ -28,6 +28,9 @@ if ($type == "get_npm_sqlite_data") {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
//GETING data from config_table (SQLite DB)
|
||||
if ($type == "get_config_sqlite") {
|
||||
try {
|
||||
@@ -74,6 +77,9 @@ if ($type == "get_config_sqlite") {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
//GETING data from config_scrips_table (SQLite DB)
|
||||
if ($type == "get_config_scripts_sqlite") {
|
||||
|
||||
@@ -107,6 +113,51 @@ if ($type == "get_config_scripts_sqlite") {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
//GETING data from envea_sondes_table (SQLite DB)
|
||||
if ($type == "get_envea_sondes_table_sqlite") {
|
||||
|
||||
try {
|
||||
$db = new PDO("sqlite:$database_path");
|
||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
// Get all entries from envea_sondes_table
|
||||
$query = $db->query("SELECT id, connected, port, name, coefficient FROM envea_sondes_table");
|
||||
$data = $query->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Convert data types appropriately
|
||||
$result = [];
|
||||
foreach ($data as $item) {
|
||||
// Create object for each sonde with proper data types
|
||||
$sonde = [
|
||||
'id' => (int)$item['id'],
|
||||
'connected' => $item['connected'] == 1, // Convert to boolean
|
||||
'port' => $item['port'],
|
||||
'name' => $item['name'],
|
||||
'coefficient' => (float)$item['coefficient'] // Convert to float
|
||||
];
|
||||
|
||||
// Add to results array
|
||||
$result[] = $sonde;
|
||||
}
|
||||
|
||||
|
||||
// Return JSON response
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Return error as JSON
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(['error' => 'Database error: ' . $e->getMessage()]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//UPDATING the config_table from SQLite DB
|
||||
if ($type == "update_config_sqlite") {
|
||||
@@ -214,6 +265,87 @@ if ($type == "update_config_scripts_sqlite") {
|
||||
}
|
||||
}
|
||||
|
||||
//UPDATING the envea_sondes_table table from SQLite DB
|
||||
if ($type == "update_sonde") {
|
||||
$id = $_GET['id'] ?? null;
|
||||
$field = $_GET['field'] ?? null;
|
||||
$value = $_GET['value'] ?? null;
|
||||
|
||||
// Validate parameters
|
||||
if ($id === null || $field === null || $value === null) {
|
||||
echo json_encode([
|
||||
"success" => false,
|
||||
"error" => "Missing required parameters (id, field, or value)"
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Validate field name (whitelist approach for security)
|
||||
$allowed_fields = ['connected', 'port', 'name', 'coefficient'];
|
||||
if (!in_array($field, $allowed_fields)) {
|
||||
echo json_encode([
|
||||
"success" => false,
|
||||
"error" => "Invalid field name: " . $field
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
// Connect to the database
|
||||
$db = new PDO("sqlite:$database_path");
|
||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
// Check if the sonde exists
|
||||
$checkStmt = $db->prepare("SELECT id FROM envea_sondes_table WHERE id = :id");
|
||||
$checkStmt->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
$checkStmt->execute();
|
||||
|
||||
if (!$checkStmt->fetch()) {
|
||||
echo json_encode([
|
||||
"success" => false,
|
||||
"error" => "Sonde with ID $id not found"
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Process value based on field type
|
||||
if ($field == 'connected') {
|
||||
// Convert to integer (0 or 1)
|
||||
$processedValue = filter_var($value, FILTER_VALIDATE_BOOLEAN) ? 1 : 0;
|
||||
$paramType = PDO::PARAM_INT;
|
||||
} else if ($field == 'coefficient') {
|
||||
// Convert to float
|
||||
$processedValue = floatval($value);
|
||||
$paramType = PDO::PARAM_STR; // SQLite doesn't have PARAM_FLOAT
|
||||
} else {
|
||||
// For text fields (port, name)
|
||||
$processedValue = $value;
|
||||
$paramType = PDO::PARAM_STR;
|
||||
}
|
||||
|
||||
// Update the sonde record
|
||||
$updateStmt = $db->prepare("UPDATE envea_sondes_table SET $field = :value WHERE id = :id");
|
||||
$updateStmt->bindParam(':value', $processedValue, $paramType);
|
||||
$updateStmt->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
$updateStmt->execute();
|
||||
|
||||
// Return success response
|
||||
echo json_encode([
|
||||
"success" => true,
|
||||
"message" => "Sonde $id updated successfully",
|
||||
"field" => $field,
|
||||
"value" => $processedValue
|
||||
]);
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Return error as JSON
|
||||
echo json_encode([
|
||||
"success" => false,
|
||||
"error" => "Database error: " . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
//update the config (old JSON updating)
|
||||
if ($type == "update_config") {
|
||||
echo "updating.... ";
|
||||
|
||||
Reference in New Issue
Block a user