Complete port of all 163 API endpoints from Lucee/CFML to PHP 8.3. Shared helpers in api/helpers.php (DB, auth, request/response, security). PDO prepared statements throughout. Same JSON response shapes as CFML.
73 lines
1.9 KiB
PHP
73 lines
1.9 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../helpers.php';
|
|
runAuth();
|
|
|
|
/**
|
|
* Debug endpoint — shows item/category stats across businesses
|
|
*/
|
|
|
|
try {
|
|
$response = [];
|
|
|
|
// Get all businesses with items
|
|
$bizRows = queryTimed("
|
|
SELECT BusinessID, COUNT(*) as ItemCount
|
|
FROM Items
|
|
WHERE BusinessID > 0
|
|
GROUP BY BusinessID
|
|
");
|
|
|
|
$response['businesses_with_items'] = [];
|
|
foreach ($bizRows as $b) {
|
|
$response['businesses_with_items'][] = [
|
|
'businessID' => (int) $b['BusinessID'],
|
|
'itemCount' => (int) $b['ItemCount'],
|
|
];
|
|
}
|
|
|
|
// Get categories grouped by business
|
|
$catRows = queryTimed("
|
|
SELECT BusinessID, COUNT(*) as cnt
|
|
FROM Categories
|
|
GROUP BY BusinessID
|
|
");
|
|
|
|
$response['categories_by_business'] = [];
|
|
foreach ($catRows as $c) {
|
|
$response['categories_by_business'][] = [
|
|
'businessID' => (int) $c['BusinessID'],
|
|
'count' => (int) $c['cnt'],
|
|
];
|
|
}
|
|
|
|
// Get sample items
|
|
$sampleRows = queryTimed("
|
|
SELECT ID, BusinessID, CategoryID, ParentItemID, Name, IsActive
|
|
FROM Items
|
|
WHERE IsActive = 1
|
|
LIMIT 20
|
|
");
|
|
|
|
$response['sample_items'] = [];
|
|
foreach ($sampleRows as $i) {
|
|
$response['sample_items'][] = [
|
|
'id' => (int) $i['ID'],
|
|
'businessID' => (int) $i['BusinessID'],
|
|
'categoryID' => (int) $i['CategoryID'],
|
|
'parentID' => (int) $i['ParentItemID'],
|
|
'name' => $i['Name'],
|
|
'active' => (int) $i['IsActive'],
|
|
];
|
|
}
|
|
|
|
// Get template link count
|
|
$linkCount = queryOne("SELECT COUNT(*) as cnt FROM lt_ItemID_TemplateItemID");
|
|
$response['template_link_count'] = (int) $linkCount['cnt'];
|
|
|
|
$response['OK'] = true;
|
|
|
|
jsonResponse($response);
|
|
|
|
} catch (Exception $e) {
|
|
jsonResponse(['OK' => false, 'ERROR' => $e->getMessage(), 'DETAIL' => '']);
|
|
}
|