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