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

19 lines
1.3 KiB
PHP
Executable File

<?php
require_once("/opt/wevads/config/credentials.php");
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$action=$_GET['action']??'stats';
$db=get_pg("adx_system");
if(!$db){echo json_encode(['status'=>'error','message'=>'DB']);exit;}
switch($action){
case 'stats':
$r=pg_query($db,"SELECT COUNT(DISTINCT admin_email) as total, COUNT(DISTINCT admin_email) FILTER(WHERE status='active') as active, COUNT(DISTINCT tenant_id) as tenants, COUNT(*) as managed_accounts FROM admin.office_accounts WHERE admin_email IS NOT NULL AND admin_email!=''");
if($r && pg_num_rows($r)>0){$s=pg_fetch_assoc($r);echo json_encode(['status'=>'success','data'=>$s]);}
else echo json_encode(['status'=>'success','data'=>['total'=>0,'active'=>0,'tenants'=>0,'managed_accounts'=>0]]);break;
case 'list':
$r=pg_query($db,"SELECT admin_email as email, tenant_id as tenant, 'admin' as role, COUNT(*) as accounts, true as mfa, MAX(last_used) as last_login FROM admin.office_accounts WHERE admin_email IS NOT NULL AND admin_email!='' GROUP BY admin_email,tenant_id ORDER BY accounts DESC LIMIT 30");
$rows=[];if($r)while($row=pg_fetch_assoc($r))$rows[]=$row;
echo json_encode(['status'=>'success','data'=>$rows]);break;
default:echo json_encode(['status'=>'success','endpoints'=>['stats','list']]);
}