38671-vm/api/water.php
2026-02-21 16:37:23 +00:00

43 lines
1.5 KiB
PHP

<?php
header('Content-Type: application/json');
require_once __DIR__ . '/../db/config.php';
$pdo = db();
$method = $_SERVER['REQUEST_METHOD'];
if ($method === 'POST') {
$input = json_decode(file_get_contents('php://input'), true);
$amount = filter_var($input['amount'] ?? 0, FILTER_VALIDATE_FLOAT); // e.g. 0.25 for 250ml
$date = $input['date'] ?? date('Y-m-d');
if ($amount <= 0) {
echo json_encode(['success' => false, 'error' => 'Invalid amount']);
exit;
}
try {
// Find existing record for today
$stmt = $pdo->prepare("SELECT id, amount FROM water_logs WHERE logged_at = ?");
$stmt->execute([$date]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
$newAmount = $row['amount'] + $amount;
$stmtUpdate = $pdo->prepare("UPDATE water_logs SET amount = ? WHERE id = ?");
$stmtUpdate->execute([$newAmount, $row['id']]);
} else {
$stmtInsert = $pdo->prepare("INSERT INTO water_logs (amount, logged_at) VALUES (?, ?)");
$stmtInsert->execute([$amount, $date]);
}
echo json_encode(['success' => true]);
} catch (PDOException $e) {
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}
} elseif ($method === 'GET') {
$date = $_GET['date'] ?? date('Y-m-d');
$stmt = $pdo->prepare("SELECT amount FROM water_logs WHERE logged_at = ?");
$stmt->execute([$date]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode(['amount' => $row ? $row['amount'] : 0]);
}