Merge pull request #148 from Steffen-MLR/master

Fix for status api by correcting sql queries
This commit is contained in:
Vojtěch Sajdl 2021-10-03 01:31:50 +02:00 committed by GitHub
commit c9bcbc241b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 16 deletions

View File

@ -15,26 +15,25 @@ else{
$array = $constellation->render_status(true, false); $array = $constellation->render_status(true, false);
echo json_encode($array); echo json_encode($array);
}else{ }else{
$query = $mysqli->prepare("SELECT name FROM services WHERE id=?"); // get id of service, check if service exists
$query->bind_param("i", $_GET['id']); $queryId = $mysqli->prepare("SELECT id from services where id = ?;");
$query->execute(); $queryId->bind_param("i", $_GET['id']);
$result = $query->get_result()->fetch_assoc(); $queryId->execute();
$result = $queryId->get_result()->fetch_assoc();
if (!count($result)) if (!count($result))
{ {
die(json_encode(["error" => _("Service does not exist!")])); die(json_encode(["error" => _("Service does not exist!")]));
} }
// get name, description and status.type (status of service) by id
$sql = $mysqli->prepare("SELECT type FROM services_status INNER JOIN status ON services_status.status_id = status.id WHERE service_id = ? AND `time` <= ? AND (`end_time` >= ? OR `end_time`=0) ORDER BY `time` DESC LIMIT 1"); $query = $mysqli->prepare("select services.id, name, description, status.type from services inner join status on status.id = services.id where services.id = ?;");
$query->bind_param("i", $_GET['id']);
$sql->bind_param("iii", $id, $timestamp, $timestamp); $query->execute();
$sql->execute(); $result = $query->get_result()->fetch_assoc();
$tmp = $sql->get_result(); // if type is a number then return it, else just return the service name/desc
if ($tmp->num_rows) if (is_numeric($result["type"])) {
{ $service = new Service($_GET["id"], $result["name"], $result["description"], '', $result["type"]);
$service = new Service($_GET['id'], $result['name'], $tmp->fetch_assoc()['type']); } else {
} $service = new Service($_GET["id"], $result["name"], $result["description"]);
else{
$service = new Service($_GET['id'], $result['name']);
} }
echo json_encode($service); echo json_encode($service);