false, 'Error' => 'not_found']; } $headerImageURL = ''; if (!empty($qBiz['HeaderImageExtension'])) { $headerImageURL = '/uploads/headers/' . $qBiz['ID'] . '.' . $qBiz['HeaderImageExtension']; } return [ 'Found' => true, 'BusinessID' => (int) $qBiz['ID'], 'BusinessName' => $qBiz['Name'], 'BrandColor' => $qBiz['BrandColor'] ?? '', 'HeaderImageURL' => $headerImageURL, ]; } try { $data = readJsonBody(); // Batch if (isset($data['Beacons']) && is_array($data['Beacons'])) { $results = []; foreach ($data['Beacons'] as $beacon) { $uuid = trim($beacon['UUID'] ?? ''); $major = isset($beacon['Major']) && is_numeric($beacon['Major']) ? (int) $beacon['Major'] : 0; if ($uuid === '' || $major <= 0) { $results[] = ['UUID' => $uuid, 'Major' => $major, 'BusinessID' => null, 'Error' => 'invalid_params']; continue; } $resolved = resolveSingleBiz($uuid, $major); if ($resolved['Found']) { $results[] = [ 'UUID' => $uuid, 'Major' => $major, 'BusinessID' => $resolved['BusinessID'], 'BusinessName' => $resolved['BusinessName'], 'BrandColor' => $resolved['BrandColor'], 'HeaderImageURL' => $resolved['HeaderImageURL'], ]; } else { $results[] = ['UUID' => $uuid, 'Major' => $major, 'BusinessID' => null, 'Error' => 'not_found']; } } jsonResponse(['OK' => true, 'COUNT' => count($results), 'Results' => $results]); } // Single $uuid = trim($data['UUID'] ?? ($_GET['UUID'] ?? '')); $major = (int) ($data['Major'] ?? ($_GET['Major'] ?? 0)); if ($uuid === '') apiAbort(['OK' => false, 'ERROR' => 'missing_uuid', 'MESSAGE' => 'UUID is required']); if ($major <= 0) apiAbort(['OK' => false, 'ERROR' => 'missing_major', 'MESSAGE' => 'Major is required']); $resolved = resolveSingleBiz($uuid, $major); if (!$resolved['Found']) { apiAbort(['OK' => false, 'ERROR' => 'not_found', 'MESSAGE' => 'No business found for this beacon']); } jsonResponse([ 'OK' => true, 'BusinessID' => $resolved['BusinessID'], 'BusinessName' => $resolved['BusinessName'], 'BrandColor' => $resolved['BrandColor'], 'HeaderImageURL' => $resolved['HeaderImageURL'], ]); } catch (Exception $e) { jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => $e->getMessage()]); }