This commit is contained in:
baodev0
2026-07-23 08:48:09 +07:00
parent 5d3ed57b32
commit 9b65d58310
6 changed files with 67 additions and 24 deletions
@@ -16,7 +16,7 @@ class OsGroupController extends Controller
public function index(Request $request): JsonResponse
{
$query = OsGroup::withCount('os')
->with(['os' => fn($q) => $q->with(['host.datacenter.vCenter', 'datastore', 'network'])->orderBy('version')])
->with(['os' => fn($q) => $q->with(['host.datacenter.vCenter', 'datastore', 'network', 'resourcePool', 'folder'])->orderBy('version')])
->when(
$request->get('filter'),
fn($q, $f) => $q->where('name', 'like', "%{$f}%")
@@ -50,7 +50,7 @@ class OsGroupController extends Controller
public function show(int $id): JsonResponse
{
$group = OsGroup::withCount('os')
->with(['os' => fn($q) => $q->with(['host.datacenter.vCenter', 'datastore', 'network'])->orderBy('version')])
->with(['os' => fn($q) => $q->with(['host.datacenter.vCenter', 'datastore', 'network', 'resourcePool', 'folder'])->orderBy('version')])
->find($id);
if (! $group) {
@@ -141,24 +141,30 @@ class OsGroupController extends Controller
private function formatOs(\App\Models\Os $os): array
{
$host = $os->relationLoaded('host') ? $os->host : null;
$datastore = $os->relationLoaded('datastore') ? $os->datastore : null;
$network = $os->relationLoaded('network') ? $os->network : null;
$host = $os->relationLoaded('host') ? $os->host : null;
$datastore = $os->relationLoaded('datastore') ? $os->datastore : null;
$network = $os->relationLoaded('network') ? $os->network : null;
$resourcePool = $os->relationLoaded('resourcePool') ? $os->resourcePool : null;
$folder = $os->relationLoaded('folder') ? $os->folder : null;
return [
'id' => $os->id,
'version' => $os->version,
'template_id' => $os->template_id,
'is_active' => (bool) $os->status,
'os_group_id' => $os->os_group_id,
'module_host_id' => $os->module_host_id,
'datastore_id' => $os->datastore_id,
'module_network_id' => $os->module_network_id,
'datastore_name' => $datastore?->name,
'network_name' => $network?->name,
'host_name' => $host?->name,
'datacenter_name' => $host?->datacenter?->name,
'vcenter_name' => $host?->datacenter?->vCenter?->host,
'id' => $os->id,
'version' => $os->version,
'template_id' => $os->template_id,
'is_active' => (bool) $os->status,
'os_group_id' => $os->os_group_id,
'module_host_id' => $os->module_host_id,
'datastore_id' => $os->datastore_id,
'module_network_id' => $os->module_network_id,
'resource_pool_id' => $os->resource_pool_id,
'folder_id' => $os->folder_id,
'datastore_name' => $datastore?->name,
'network_name' => $network?->name,
'host_name' => $host?->name,
'resource_pool_name' => $resourcePool?->name,
'folder_name' => $folder?->name,
'datacenter_name' => $host?->datacenter?->name,
'vcenter_name' => $host?->datacenter?->vCenter?->host,
];
}
}