From b307d87cbc6228b50dd2650850231b6cf92444f8 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Tue, 27 May 2025 19:06:33 +0530 Subject: [PATCH] Resolved issue in update asset and devices --- .../APIS/AdminApi/AssetadmintController.php | 7 +++ .../APIS/AdminApi/DeviceController.php | 43 +++++++++++-------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php index f93e510..2e85ca3 100644 --- a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php +++ b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php @@ -112,6 +112,7 @@ class AssetadmintController extends Controller // Update local database record $asset->name = $assetData['name']; $asset->type = $assetData['type']; + $asset->customer_xid = $assetData['customerId']; $asset->label = $assetData['label']; $asset->version = $assetData['version']; $asset->additional_info = json_encode( $assetData['additionalInfo']); @@ -119,6 +120,12 @@ class AssetadmintController extends Controller $message = 'Asset updated successfully!'; } else { + + $assetNameExists = Asset::where('name', $request->name)->first(); + if ($assetNameExists) { + return jsonResponseWithErrorMessage('Asset name already exists', 400); + } + // Create new asset via admin service $response = $this->adminService->createAsset($assetData); if (!$response) { diff --git a/app/Http/Controllers/APIS/AdminApi/DeviceController.php b/app/Http/Controllers/APIS/AdminApi/DeviceController.php index 75b1025..7aab421 100644 --- a/app/Http/Controllers/APIS/AdminApi/DeviceController.php +++ b/app/Http/Controllers/APIS/AdminApi/DeviceController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\APIS\AdminApi; use App\Http\Controllers\Controller; use App\Http\Requests\CreateDeviceRequest; use App\Models\Device; +use App\Models\DeviceProfileMaster; use App\Services\DeviceService; use Illuminate\Http\Request; use Illuminate\Support\Str; @@ -35,6 +36,7 @@ class DeviceController extends Controller } $deviceData = [ + 'id' => $request->id ?? null, 'name' => $request->name ?? null, 'type' => $request->type ?? null, 'label' => $request->label ?? null, @@ -58,9 +60,9 @@ class DeviceController extends Controller // Optional Fields - + // dd($request->id); // Handle updating existing devices - if (!empty($request->id)) { + if (empty($request->id)) { $deviceData['id'] = $request->id; } if (!empty($request->firmwareId)) { @@ -72,36 +74,41 @@ class DeviceController extends Controller // Call Service to create/update device - $apiResponse = $this->deviceService->createOrUpdateDevice($deviceData); + if (empty($request->id)) { + $apiResponse = $this->deviceService->createOrUpdateDevice($deviceData); + } + // Log::info("API Response: " . json_encode($apiResponse)); + $deviceProfileName = DeviceProfileMaster::where('id', $request->deviceProfileId)->first(); + // Store device in the database $device = Device::updateOrCreate( - ['id' => $apiResponse['id']['id'] ?? Str::uuid()->toString()], + ['id' => $apiResponse['id']['id'] ?? $request->id], [ - 'entity_type' => $apiResponse['id']['entityType'] ?? 'DEVICE', - 'created_time' => $apiResponse['createdTime'] ?? now()->timestamp, - 'customer_id' => $apiResponse['customerId']['id'] ?? null, - 'name' => $apiResponse['name'] ?? null, - 'type' => $apiResponse['type'] ?? null, - 'label' => $apiResponse['label'] ?? null, + 'entity_type' => 'DEVICE', + 'created_time' => now()->timestamp, + 'customer_id' => $request->customerId ?? null, + 'name' => $request->name ?? null, + 'type' => $deviceProfileName['name'] ?? null, + 'label' => $request->label ?? null, 'asset_id' => $request->asset_id ?? null, 'speed_limit' => $request->speed_limit ?? null, 'torque_limit' => $request->torque_limit ?? null, 'power_limit' => $request->power_limit ?? null, - 'device_profile_id' => $apiResponse['deviceProfileId']['id'] ?? null, - 'firmware_id' => $apiResponse['firmwareId']['id'] ?? null, - 'software_id' => $apiResponse['softwareId']['id'] ?? null, - 'version' => $apiResponse['version'] ?? 1, - 'tenant_id' => $apiResponse['tenantId']['id'] ?? null, - 'device_data' => json_encode($apiResponse['deviceData'] ?? []), - 'additional_info' => json_encode($apiResponse['additionalInfo'] ?? []) + 'device_profile_id' => $request->deviceProfileId ?? null, + 'firmware_id' => $request->firmware_id ?? null, + 'software_id' => $request->software_id ?? null, + 'version' => $request->version ?? 1, + 'tenant_id' => $request->tenant_id ?? null, + 'device_data' => json_encode($request->device_data ?? []), + 'additional_info' => $request->additionalInfo ] ); return jsonResponseWithSuccessMessage( !empty($request->id) ? 'Device updated successfully' : 'Device created successfully', - ['device' => $device, 'api_response' => $apiResponse] + ['device' => $device] ); } catch (Exception $e) { Log::error("Error: " . $e->getMessage());