111 lines
4.5 KiB
PHP
Executable File
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']]);
|
|
}
|
|
|