Fix api_get_nearby syntax error and Docker key paths

This commit is contained in:
Hamza-Ayed
2026-07-22 03:59:40 +03:00
parent dabf4c13ba
commit a2f0911d13
+28 -6
View File
@@ -5,13 +5,31 @@ use Predis\Client;
header('Content-Type: application/json');
$INTERNAL_KEY = trim(file_get_contents('/home/location/.internal_socket_key'));
$PASS_REDIS = trim(file_get_contents('/home/location/.reds_pass_key'));
function getInternalKey(): string {
$envKey = getenv('INTERNAL_SOCKET_KEY');
if ($envKey) return trim($envKey);
$path = getenv('INTERNAL_SOCKET_KEY_PATH');
if ($path && file_exists($path)) return trim((string)@file_get_contents($path));
if (file_exists('/keys/.internal_socket_key')) return trim((string)@file_get_contents('/keys/.internal_socket_key'));
if (file_exists('/home/location/.internal_socket_key')) return trim((string)@file_get_contents('/home/location/.internal_socket_key'));
return '';
}
function getRedisPass(): ?string {
$path = getenv('REDIS_PASS_KEY_PATH');
if ($path && file_exists($path)) return trim((string)@file_get_contents($path));
if (file_exists('/keys/.reds_pass_key')) return trim((string)@file_get_contents('/keys/.reds_pass_key'));
if (file_exists('/home/location/.reds_pass_key')) return trim((string)@file_get_contents('/home/location/.reds_pass_key'));
return null;
}
$INTERNAL_KEY = getInternalKey();
$PASS_REDIS = getRedisPass();
$headers = getallheaders();
$receivedKey = $headers['x-internal-key'] ?? $_SERVER['HTTP_X_INTERNAL_KEY'] ?? '';
if ($receivedKey !== $INTERNAL_KEY) {
if (!empty($INTERNAL_KEY) && $receivedKey !== $INTERNAL_KEY) {
http_response_code(403);
echo json_encode(['status' => false, 'msg' => 'Unauthorized']);
exit;
@@ -26,14 +44,18 @@ if (!$lat || !$lng) {
echo json_encode(['status' => false, 'msg' => 'Invalid Coordinates']); exit;
}
try {
$redisHost = getenv('REDIS_HOST') ?: ($_ENV['REDIS_HOST'] ?? (file_exists('/.dockerenv') ? 'redis' : '127.0.0.1'));
$redis = new Client([
$redisConfig = [
'scheme' => 'tcp',
'host' => $redisHost,
'password' => $PASS_REDIS,
'port' => 6379,
'database' => 0
]);
];
if (!empty($PASS_REDIS)) {
$redisConfig['password'] = $PASS_REDIS;
}
$redis = new Client($redisConfig);
$redis->connect();
// 🔥 التعديل هنا: إضافة WITHCOORD لجلب الإحداثيات من الريدز مباشرة