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

111 lines
4.5 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
class WevadsConnector {
private $baseUrl;
private $session;
public function __construct($baseUrl = 'http://api.weval.digital:58081') {
$this->baseUrl = rtrim($baseUrl, '/');
$this->session = curl_init();
curl_setopt_array($this->session, [CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_COOKIEJAR => '/tmp/wevads_cookies.txt', CURLOPT_COOKIEFILE => '/tmp/wevads_cookies.txt', CURLOPT_TIMEOUT => 30]);
}
public function login($user, $pass) {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/auth/login');
curl_setopt($this->session, CURLOPT_POST, true);
curl_setopt($this->session, CURLOPT_POSTFIELDS, http_build_query(['username' => $user, 'password' => $pass]));
$response = curl_exec($this->session);
return ['success' => strpos($response, 'dashboard') !== false || curl_getinfo($this->session, CURLINFO_HTTP_CODE) == 200];
}
public function getServers() {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/servers');
curl_setopt($this->session, CURLOPT_POST, false);
return json_decode(curl_exec($this->session), true);
}
public function getVMTAs($serverId = null) {
$url = $this->baseUrl . '/api/vmtas' . ($serverId ? "?server_id=$serverId" : '');
curl_setopt($this->session, CURLOPT_URL, $url);
return json_decode(curl_exec($this->session), true);
}
public function getEmailLists() {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/email-lists');
return json_decode(curl_exec($this->session), true);
}
public function getOffers() {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/offers');
return json_decode(curl_exec($this->session), true);
}
public function sendTest($params) {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/send/test');
curl_setopt($this->session, CURLOPT_POST, true);
curl_setopt($this->session, CURLOPT_POSTFIELDS, http_build_query($params));
return json_decode(curl_exec($this->session), true);
}
public function sendDrop($params) {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/send/drop');
curl_setopt($this->session, CURLOPT_POST, true);
curl_setopt($this->session, CURLOPT_POSTFIELDS, http_build_query($params));
return json_decode(curl_exec($this->session), true);
}
public function getPMTAStatus($serverId) {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . "/api/pmta/status?server_id=$serverId");
return json_decode(curl_exec($this->session), true);
}
public function createHuaweiInstances($params) {
curl_setopt($this->session, CURLOPT_URL, $this->baseUrl . '/api/cloud/huawei/create');
curl_setopt($this->session, CURLOPT_POST, true);
curl_setopt($this->session, CURLOPT_POSTFIELDS, http_build_query($params));
return json_decode(curl_exec($this->session), true);
}
}
$action = $_POST['action'] ?? $_GET['action'] ?? '';
// Get config
$config = $pdo->query("SELECT * FROM admin.wevads_config WHERE is_active = true LIMIT 1")->fetch(PDO::FETCH_ASSOC);
$connector = new WevadsConnector($config['api_url'] ?? 'http://api.weval.digital:58081');
switch ($action) {
case 'login':
echo json_encode($connector->login($_POST['username'], $_POST['password']));
break;
case 'servers':
echo json_encode($connector->getServers());
break;
case 'vmtas':
echo json_encode($connector->getVMTAs($_GET['server_id'] ?? null));
break;
case 'lists':
echo json_encode($connector->getEmailLists());
break;
case 'offers':
echo json_encode($connector->getOffers());
break;
case 'test':
echo json_encode($connector->sendTest($_POST));
break;
case 'drop':
echo json_encode($connector->sendDrop($_POST));
break;
case 'pmta_status':
echo json_encode($connector->getPMTAStatus($_GET['server_id']));
break;
case 'create_huawei':
echo json_encode($connector->createHuaweiInstances($_POST));
break;
default:
echo json_encode(['actions' => ['login','servers','vmtas','lists','offers','test','drop','pmta_status','create_huawei']]);
}