'Bad Request', 'message' => 'Parameter "product" is required.'], 400); } $latest = $updateMgr->checkUpdate($product, $version); if ($latest) { sendResponse([ 'update_available' => true, 'latest_release' => $latest ]); } else { sendResponse([ 'update_available' => false, 'message' => 'Application is up to date.' ]); } } if (str_ends_with($uri, '/releases') && $method === 'GET') { $product = $_GET['product'] ?? null; $releases = $updateMgr->getReleases($product); sendResponse(['count' => count($releases), 'releases' => $releases]); } sendResponse(['error' => 'Not Found', 'message' => 'Endpoint not found'], 404); } catch (Throwable $t) { sendResponse(['error' => 'Server Error', 'message' => $t->getMessage()], 500); }