Resolved issue in update asset and devices

This commit is contained in:
2025-05-27 19:06:33 +05:30
parent 85b86a00d9
commit b307d87cbc
2 changed files with 32 additions and 18 deletions

View File

@@ -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) {

View File

@@ -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());