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

37 lines
1.9 KiB
PHP
Executable File

<?php
require_once("/opt/wevads/config/credentials.php");
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }
$input = json_decode(file_get_contents('php://input'), true) ?: $_REQUEST;
$action = $input['action'] ?? $_GET['action'] ?? 'status';
try { $pdo = get_pdo("adx_system"); } catch (Exception $e) { $pdo = null; }
switch ($action) {
case 'create':
echo json_encode(['status'=>'success','message'=>'Account creation queued','provider'=>$input['provider']??'aws','region'=>$input['region']??'eu-west-1']);
break;
case 'list':
$accounts = [];
if ($pdo) { try { $stmt = $pdo->query("SELECT * FROM admin.cloud_accounts ORDER BY created_at DESC LIMIT 50"); $accounts = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) {} }
echo json_encode(['status'=>'success','accounts'=>$accounts,'total'=>count($accounts)]);
break;
case 'providers':
echo json_encode(['status'=>'success','providers'=>[
['name'=>'AWS','regions'=>['us-east-1','eu-west-1','ap-southeast-1'],'status'=>'active'],
['name'=>'Azure','regions'=>['westeurope','eastus','southeastasia'],'status'=>'active'],
['name'=>'GCP','regions'=>['europe-west1','us-central1','asia-east1'],'status'=>'active'],
['name'=>'Hetzner','regions'=>['fsn1','nbg1','hel1'],'status'=>'active']
]]);
break;
case 'stats':
echo json_encode(['status'=>'success','data'=>['total_accounts'=>0,'active'=>0,'suspended'=>0,'monthly_cost'=>0]]);
break;
default:
echo json_encode(['status'=>'success','service'=>'cloud-factory','actions'=>['create','list','providers','stats']]);
}