1 Commits

Author SHA1 Message Date
AI Development Engine
4361fdf9f0 feat: implement issue #6
Resolves luca/thetool#6
Closes #6
2026-03-02 10:48:05 +00:00

61
public/api/health.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
/**
* Health check endpoint for thetool
* Returns database table count for monitoring purposes
*/
// Bootstrap the application
if(file_exists("../../config/config.php")) {
require("../../config/config.php");
} else {
header("Content-Type: application/json");
http_response_code(500);
echo json_encode(["status" => "error", "message" => "Configuration not found"]);
exit;
}
// Define FronkDB constants if not already defined
if(!defined('FRONKDB_SQLDEBUG')) {
define('FRONKDB_SQLDEBUG', false);
}
// Load required classes
require_once(LIBDIR."autoloader/autoloader.php");
require_once(LIBDIR."mvcfronk/mfLog/mfLoghandler.php");
require_once(LIBDIR."FronkDB/FronkDB.php");
// Get database table count
$tableCount = 0;
$db = null;
try {
$db = new FronkDB(
FRONKDB_DBHOST,
FRONKDB_DBUSER,
FRONKDB_DBPASS,
FRONKDB_DBNAME
);
// Query to get table count
$result = $db->query("SELECT COUNT(*) as count FROM information_schema.tables WHERE table_schema = '".FRONKDB_DBNAME."'");
if($result) {
$row = mysqli_fetch_assoc($result);
if($row) {
$tableCount = (int)$row['count'];
}
}
} catch(Exception $e) {
header("Content-Type: application/json");
http_response_code(500);
echo json_encode(["status" => "error", "message" => "Database error: " . $e->getMessage()]);
exit;
}
// Return JSON response
header("Content-Type: application/json");
http_response_code(200);
echo json_encode([
"status" => "ok",
"tables" => $tableCount
]);