setup coolify
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* jalan.php
|
* jalan.php
|
||||||
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
|
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* kavling.php
|
* kavling.php
|
||||||
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
|
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* rumah_ibadah.php
|
* rumah_ibadah.php
|
||||||
* Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine.
|
* Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once '../core_config/database.php';
|
require_once '../core_config/database.php';
|
||||||
require_once '../utils/response_helper.php';
|
require_once '../utils/response_helper.php';
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* statistik.php
|
* statistik.php
|
||||||
* Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains).
|
* Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* warga_miskin.php
|
* warga_miskin.php
|
||||||
* Tanggung Jawab: Operasi CRUD untuk Warga Miskin.
|
* Tanggung Jawab: Operasi CRUD untuk Warga Miskin.
|
||||||
|
|||||||
@@ -32,24 +32,43 @@ class Database {
|
|||||||
$password = self::env('DB_PASSWORD', '');
|
$password = self::env('DB_PASSWORD', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$conn = new PDO(
|
try {
|
||||||
"mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4",
|
self::$conn = new PDO(
|
||||||
$username,
|
"mysql:host={$host};port={$port};dbname={$dbName};charset=utf8mb4",
|
||||||
$password
|
$username,
|
||||||
);
|
$password
|
||||||
self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
);
|
||||||
self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
self::$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
// Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB
|
// Disable strict mode for GROUP BY to prevent 1055 errors in Coolify's MariaDB
|
||||||
self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))");
|
self::$conn->exec("SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))");
|
||||||
|
|
||||||
// Auto-initialize database if empty
|
// Auto-initialize database if empty
|
||||||
$stmt = self::$conn->query("SHOW TABLES LIKE 'users'");
|
$stmt = self::$conn->query("SHOW TABLES LIKE 'users'");
|
||||||
if ($stmt->rowCount() == 0) {
|
if ($stmt->rowCount() == 0) {
|
||||||
$sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql';
|
$sqlFile = __DIR__ . '/../../db_scripts/webgis_naufal_zaky.sql';
|
||||||
if (file_exists($sqlFile)) {
|
if (file_exists($sqlFile)) {
|
||||||
$sql = file_get_contents($sqlFile);
|
$sql = file_get_contents($sqlFile);
|
||||||
self::$conn->exec($sql);
|
self::$conn->exec($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$isApi = (defined('JSON_REQUEST') && JSON_REQUEST) ||
|
||||||
|
(strpos($_SERVER['REQUEST_URI'] ?? '', '/api/') !== false) ||
|
||||||
|
(strpos($_SERVER['REQUEST_URI'] ?? '', 'endpoints/') !== false) ||
|
||||||
|
(isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false);
|
||||||
|
|
||||||
|
if ($isApi) {
|
||||||
|
header('Content-Type: application/json; charset=utf-8');
|
||||||
|
http_response_code(500);
|
||||||
|
echo json_encode([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Database Connection Failed: ' . $e->getMessage()
|
||||||
|
]);
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
die("Database Connection Failed: " . $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/core_config/settings.php';
|
require_once __DIR__ . '/core_config/settings.php';
|
||||||
|
|
||||||
$host = getenv('DB_HOST') ?: 'localhost';
|
$host = getenv('DB_HOST') ?: 'localhost';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/core_config/session_mgr.php';
|
require_once __DIR__ . '/core_config/session_mgr.php';
|
||||||
startAppSession();
|
startAppSession();
|
||||||
if (isset($_SESSION['user_id'])) {
|
if (isset($_SESSION['user_id'])) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/core_config/session_mgr.php';
|
require_once __DIR__ . '/core_config/session_mgr.php';
|
||||||
startAppSession();
|
startAppSession();
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../core_config/database.php';
|
require_once __DIR__ . '/../core_config/database.php';
|
||||||
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
||||||
requireRole('admin');
|
requireRole('admin');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../core_config/database.php';
|
require_once __DIR__ . '/../core_config/database.php';
|
||||||
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
||||||
requireRole('admin');
|
requireRole('admin');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../core_config/database.php';
|
require_once __DIR__ . '/../core_config/database.php';
|
||||||
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
||||||
requireRole('admin');
|
requireRole('admin');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/../core_config/database.php';
|
require_once __DIR__ . '/../core_config/database.php';
|
||||||
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
require_once __DIR__ . '/../core_config/middleware_auth.php';
|
||||||
requireRole('admin');
|
requireRole('admin');
|
||||||
|
|||||||
Reference in New Issue
Block a user