sayliR #60
@@ -158,21 +158,20 @@ class AlarmControllerCommon extends Controller
|
||||
public function filterAlarm(Request $request)
|
||||
{
|
||||
try {
|
||||
$token = readHeaderToken();
|
||||
$useId = $token['sub'];
|
||||
|
||||
$alarmData = $request->only([
|
||||
// 'statusList',
|
||||
'severity',
|
||||
// 'type',
|
||||
// 'assigneeId',
|
||||
'pageSize',
|
||||
'page',
|
||||
// 'textSearch',
|
||||
// 'sortProperty',
|
||||
// 'sortOrder',
|
||||
'startTs',
|
||||
'endTs'
|
||||
'endTs',
|
||||
'deviceId',
|
||||
'assetId'
|
||||
]);
|
||||
|
||||
$apiResponse = $this->alarmService->filterAlarm($alarmData);
|
||||
$apiResponse = $this->alarmService->filterAlarm($alarmData, $useId);
|
||||
|
||||
return jsonResponseWithSuccessMessage('Alarm data retrieved successfully', ['api_response' => $apiResponse]);
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Device;
|
||||
use App\Models\TimeseriesKeyMaster;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -79,7 +80,6 @@ class AlarmService
|
||||
}
|
||||
|
||||
return $response->json()['data'] ?? [];
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error("Error fetching ThingsBoard devices: " . $e->getMessage());
|
||||
return [];
|
||||
@@ -285,7 +285,7 @@ class AlarmService
|
||||
'useStrictDataTypes' => false
|
||||
]);
|
||||
|
||||
// dd($response);
|
||||
// dd($response);
|
||||
|
||||
// Check if the response was successful
|
||||
if (!$response->successful()) {
|
||||
@@ -313,22 +313,36 @@ class AlarmService
|
||||
}
|
||||
|
||||
|
||||
public function filterAlarm(array $data)
|
||||
public function filterAlarm(array $data, $useId)
|
||||
{
|
||||
$token = $this->getToken();
|
||||
|
||||
$deviceId = null;
|
||||
|
||||
if (!empty($data['deviceId'])) {
|
||||
$deviceId = $data['deviceId'];
|
||||
}
|
||||
elseif (!empty($data['assetId'])) {
|
||||
$deviceId = Device::where('asset_id', $data['assetId'])->value('id');
|
||||
}
|
||||
|
||||
if (!empty($data['assetId']) && empty($deviceId)) {
|
||||
return [
|
||||
'data' => [],
|
||||
'totalPages' => 0,
|
||||
'totalElements' => 0,
|
||||
'hasNext' => false,
|
||||
];
|
||||
}
|
||||
|
||||
$queryParams = array_filter([
|
||||
// 'statusList' => $data['statusList'] ?? null,
|
||||
'severityList' => $data['severity'] ?? null,
|
||||
// 'typeList' => $data['type'] ?? null,
|
||||
// 'assigneeId' => $data['assigneeId'] ?? null,
|
||||
'assigneeId' => $useId,
|
||||
'pageSize' => $data['pageSize'] ?? 10,
|
||||
'page' => $data['page'] ?? 0,
|
||||
// 'textSearch' => $data['textSearch'] ?? null,
|
||||
// 'sortProperty' => $data['sortProperty'] ?? null,
|
||||
// 'sortOrder' => $data['sortOrder'] ?? null,
|
||||
'startTime' => $data['startTs'] ?? null,
|
||||
'endTime' => $data['endTs'] ?? null,
|
||||
'deviceId' => $deviceId,
|
||||
], function ($value) {
|
||||
return $value !== null;
|
||||
});
|
||||
@@ -345,9 +359,27 @@ class AlarmService
|
||||
throw new Exception('API Error: ' . $response->body());
|
||||
}
|
||||
|
||||
return $response->json();
|
||||
$responseData = $response->json();
|
||||
|
||||
// If device filtering was applied, refine the results manually
|
||||
if (!empty($deviceId) && isset($responseData['data'])) {
|
||||
$filteredData = array_values(array_filter(
|
||||
$responseData['data'],
|
||||
function ($alarm) use ($deviceId) {
|
||||
return isset($alarm['originator']['id']) && $alarm['originator']['id'] === $deviceId;
|
||||
}
|
||||
));
|
||||
|
||||
// Update response with the filtered data
|
||||
$responseData['data'] = $filteredData;
|
||||
$responseData['totalElements'] = count($filteredData);
|
||||
}
|
||||
|
||||
return $responseData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function createOrUpdateAlarm(array $data)
|
||||
{
|
||||
|
||||
|
||||
@@ -60,7 +60,6 @@ Route::post('/update-device-profile-master/{deviceId}', [DeviceProfileMasterCont
|
||||
Route::post('/alarm/create-or-update', [AlarmControllerCommon::class, 'createOrUpdateAlarm'])->name('alarm.create-or-update');
|
||||
Route::get('/alarm/{id}', [AlarmControllerCommon::class, 'getAlarmById'])->name('get.alarm');
|
||||
Route::post('/alarm/ack/{id}', [AlarmControllerCommon::class, 'acknowledgeAlarmById'])->name('ack.alarm');
|
||||
Route::post('/alarm/filter', [AlarmControllerCommon::class, 'filterAlarm'])->name('alarm.filter');
|
||||
|
||||
//******************************************************* Rule Chain API ********************************************************
|
||||
Route::get('/rule-chains', [RuleChainController::class, 'getRuleChainList'])->name('list.RuleChain');
|
||||
|
||||
@@ -19,29 +19,29 @@ Route::get('/customerapi', function () {
|
||||
|
||||
Route::post('user-login', [AuthController::class, 'login']);
|
||||
|
||||
Route::post('/telemetry-data-device-diagnostic',[TelemetryController::class,'telemePtryDataDeviceDiagnostic']);
|
||||
Route::post('/telemetry-data-device-diagnostic', [TelemetryController::class, 'telemePtryDataDeviceDiagnostic']);
|
||||
|
||||
|
||||
|
||||
// Route::post('/user-login', [AuthController::class, 'login']);
|
||||
Route::middleware(['customerApiBasicAuth'])->group(function () {
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
Route::get('/customer-device-info',[CustomerDeviceInfoController::class,'customerDeviceInfo']);
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
Route::get('/customer-device-info', [CustomerDeviceInfoController::class, 'customerDeviceInfo']);
|
||||
|
||||
Route::post('/telemetry-data-asset',[TelemetryController::class,'telemetryDataAsset']);
|
||||
Route::post('/telemetry-data-device',[TelemetryController::class,'telemetryDataDevice']);
|
||||
Route::post('/telemetry-data-asset', [TelemetryController::class, 'telemetryDataAsset']);
|
||||
Route::post('/telemetry-data-device', [TelemetryController::class, 'telemetryDataDevice']);
|
||||
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
Route::post('/store/report', [CustomerApiDownloadsController::class, 'storePdfData'])->name('store-report');
|
||||
Route::post('/fetch/report', [CustomerApiDownloadsController::class, 'fetchReport'])->name('fetch-report');
|
||||
Route::post('/destroy/report', [CustomerApiDownloadsController::class, 'destroyReport'])->name('destroy-report');
|
||||
|
||||
Route::post('/alert-message',[TimeseriesAlertMessageController::class, 'alertMessage']);
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
Route::post('/store/report', [CustomerApiDownloadsController::class, 'storePdfData'])->name('store-report');
|
||||
Route::post('/fetch/report', [CustomerApiDownloadsController::class, 'fetchReport'])->name('fetch-report');
|
||||
Route::post('/destroy/report', [CustomerApiDownloadsController::class, 'destroyReport'])->name('destroy-report');
|
||||
|
||||
Route::post('/alarm', [AlarmControllerCommon::class, 'getDeviceAlarms'])->name('alarm.device');
|
||||
Route::post('/alert-message', [TimeseriesAlertMessageController::class, 'alertMessage']);
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
Route::post('/store/report', [CustomerApiDownloadsController::class, 'storePdfData'])->name('store-report');
|
||||
Route::post('/fetch/report', [CustomerApiDownloadsController::class, 'fetchReport'])->name('fetch-report');
|
||||
Route::post('/destroy/report', [CustomerApiDownloadsController::class, 'destroyReport'])->name('destroy-report');
|
||||
|
||||
});
|
||||
Route::post('/alarm/filter', [AlarmControllerCommon::class, 'filterAlarm'])->name('alarm.filter');
|
||||
Route::post('/alarm', [AlarmControllerCommon::class, 'getDeviceAlarms'])->name('alarm.device');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user