Resolved issue in update asset and devices
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user