From 42ebc1d71ca8df8433f85dcbd09acfa496a07d05 Mon Sep 17 00:00:00 2001 From: Nikhil Kadam Date: Wed, 14 May 2025 19:01:49 +0530 Subject: [PATCH] User alarms based on user devices --- .../APIS/CustomerApi/TelemetryController.php | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/APIS/CustomerApi/TelemetryController.php b/app/Http/Controllers/APIS/CustomerApi/TelemetryController.php index 04a9b9a..e002829 100644 --- a/app/Http/Controllers/APIS/CustomerApi/TelemetryController.php +++ b/app/Http/Controllers/APIS/CustomerApi/TelemetryController.php @@ -1570,7 +1570,7 @@ class TelemetryController extends Controller 'severityList' => $request->severityList, 'startTs' => $request->startTs, 'endTs' => $request->endTs, - 'deviceIds' => $getDeviceByAsset, + 'deviceIds' => $request->deviceIds ?? $getDeviceByAsset, ]; $allDevices = Device::pluck('id')->toArray(); @@ -1602,8 +1602,7 @@ class TelemetryController extends Controller public function getUserDeviceByAsset($assetId){ $token = readHeaderToken(); $userDevices = UserAssetLink::with('asset.devices') - ->where('user_id', $token['sub']) - ->where('asset_id', $assetId) + ->where(['user_id' => $token['sub'], 'active' => 1, 'asset_id' => $assetId]) ->get() ->pluck('asset.devices') ->flatten() @@ -1615,11 +1614,17 @@ class TelemetryController extends Controller public function getUserAlarms(Request $request){ try { $token = readHeaderToken(); - $userId = $token['sub']; - if($request->assetIds){ - $getDeviceByAsset = Device::whereIn('asset_id', $request->assetIds)->pluck('id')->toArray(); - }else{ + if($request->assetIds) { + $userDevices = UserAssetLink::with('asset.devices') + ->where(['user_id' => $token['sub'], 'active' => 1]) + ->whereIn('asset_id', $request->assetIds) + ->get() + ->pluck('asset.devices') + ->flatten() + ->unique('id'); + $getDeviceByAsset = $userDevices->pluck('id')->toArray(); + } else { $getDeviceByAsset = $request->deviceIds; } @@ -1628,10 +1633,16 @@ class TelemetryController extends Controller 'severityList' => $request->severityList, 'startTs' => $request->startTs, 'endTs' => $request->endTs, - 'deviceIds' => $getDeviceByAsset, + 'deviceIds' => $request->deviceIds ?? $getDeviceByAsset, ]; - $allDevices = Device::pluck('id')->toArray(); + $userDevices = UserAssetLink::with('asset.devices') + ->where(['user_id' => $token['sub'], 'active' => 1]) + ->get() + ->pluck('asset.devices') + ->flatten() + ->unique('id'); + $allDevices = $userDevices->pluck('id')->toArray(); $alarms = $this->customerInfoService->fetchDeviceAlarms($allDevices, $data);