Files
wevads-platform/scripts/api_link-wrapper.php
2026-02-26 04:53:11 +01:00

30 lines
1.5 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
$pdo->exec("CREATE TABLE IF NOT EXISTS admin.wrapped_links (id SERIAL PRIMARY KEY, original_url TEXT, short_code VARCHAR(20) UNIQUE, clicks INTEGER DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");
$action = $_POST['action'] ?? $_GET['action'] ?? '';
switch ($action) {
case 'wrap':
$url = $_POST['url'] ?? '';
$code = substr(md5($url . time()), 0, 8);
$pdo->prepare("INSERT INTO admin.wrapped_links (original_url, short_code) VALUES (?, ?) ON CONFLICT DO NOTHING")->execute([$url, $code]);
echo json_encode(['original' => $url, 'wrapped' => "http://89.167.40.150:5821/r/$code", 'code' => $code]);
break;
case 'resolve':
$code = $_GET['code'] ?? '';
$stmt = $pdo->prepare("SELECT original_url FROM admin.wrapped_links WHERE short_code = ?");
$stmt->execute([$code]);
$link = $stmt->fetchColumn();
if ($link) { $pdo->exec("UPDATE admin.wrapped_links SET clicks = clicks + 1 WHERE short_code = '$code'"); }
echo json_encode(['url' => $link ?: null]);
break;
case 'stats':
$links = $pdo->query("SELECT * FROM admin.wrapped_links ORDER BY clicks DESC LIMIT 50")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(['links' => $links]);
break;
default:
echo json_encode(['actions' => ['wrap','resolve','stats']]);
}