- Implementasi fallback mechanism untuk daily_summary (threshold 5%) - Auto-detect base path untuk subdirectory installation - Perbaikan query dengan CAST(? AS DATE) untuk semua tanggal - Script utilities: check_daily_summary.php dan check_and_fix_hourly_summary.php - Setup .htaccess untuk routing Slim Framework - Test script untuk verifikasi API lokal - Dokumentasi SETUP_LOCAL_API.md
63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Test script untuk cek apakah API bisa diakses
|
|
* Akses: http://localhost/api-btekno/public/test.php
|
|
*/
|
|
|
|
require __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use App\Config\AppConfig;
|
|
use App\Support\Database;
|
|
|
|
echo "<h1>API Test</h1>";
|
|
echo "<p>PHP Version: " . phpversion() . "</p>";
|
|
echo "<p>Document Root: " . __DIR__ . "</p>";
|
|
echo "<p>Request URI: " . ($_SERVER['REQUEST_URI'] ?? 'N/A') . "</p>";
|
|
|
|
// Test database connection
|
|
try {
|
|
AppConfig::loadEnv(__DIR__ . '/..');
|
|
|
|
$db = Database::getConnection(
|
|
AppConfig::get('DB_HOST'),
|
|
AppConfig::get('DB_NAME'),
|
|
AppConfig::get('DB_USER'),
|
|
AppConfig::get('DB_PASS')
|
|
);
|
|
|
|
echo "<p style='color: green;'>✓ Database connection: OK</p>";
|
|
|
|
// Test query
|
|
$stmt = $db->query("SELECT COUNT(*) as count FROM entry_events");
|
|
$result = $stmt->fetch();
|
|
echo "<p>Total entry_events: " . ($result['count'] ?? 0) . "</p>";
|
|
|
|
// Test daily_summary untuk 2026-01-01
|
|
$stmt = $db->prepare("SELECT SUM(total_count) as total FROM daily_summary WHERE summary_date = CAST(? AS DATE)");
|
|
$stmt->execute(['2026-01-01']);
|
|
$dailyResult = $stmt->fetch();
|
|
echo "<p>daily_summary for 2026-01-01: " . ($dailyResult['total'] ?? 0) . " events</p>";
|
|
|
|
} catch (Exception $e) {
|
|
echo "<p style='color: red;'>✗ Database connection: FAILED</p>";
|
|
echo "<p>Error: " . htmlspecialchars($e->getMessage()) . "</p>";
|
|
}
|
|
|
|
// Test health endpoint
|
|
echo "<hr>";
|
|
echo "<h2>Test Health Endpoint</h2>";
|
|
echo "<p><a href='health' target='_blank'>Click here to test /health endpoint</a></p>";
|
|
echo "<p>Or access directly: <code>http://localhost/api-btekno/public/health</code></p>";
|
|
|
|
// Test dengan curl jika tersedia
|
|
echo "<hr>";
|
|
echo "<h2>Manual Test Commands</h2>";
|
|
echo "<pre>";
|
|
echo "curl http://localhost/api-btekno/public/health\n";
|
|
echo "curl -X POST http://localhost/api-btekno/public/auth/v1/login \\\n";
|
|
echo " -H \"Content-Type: application/json\" \\\n";
|
|
echo " -H \"X-API-KEY: POKOKEIKISEKOYOLO\" \\\n";
|
|
echo " -d '{\"username\":\"admin\",\"password\":\"password\"}'\n";
|
|
echo "</pre>";
|
|
|