@@ -102,44 +113,46 @@ new class extends Component {
- WiFi Status:
- - {{ $log->log_entry['device_status_stamp']['wifi_status'] ?? 'Unknown' }}
+ - {{ $wifiStatus }}
- WiFi RSSI:
- - {{ $log->log_entry['device_status_stamp']['wifi_rssi_level'] ?? 'Unknown' }} dBm
+ - {{ $wifiRssi ?? 'Unknown' }} dBm
- Refresh Rate:
- - {{ $log->log_entry['device_status_stamp']['refresh_rate'] ?? 'Unknown' }}s
+ - {{ $log->log_entry['refresh_rate'] ?? $log->log_entry['device_status_stamp']['refresh_rate'] ?? 'Unknown' }}s
- Time Since Sleep:
- - {{ $log->log_entry['device_status_stamp']['time_since_last_sleep_start'] ?? 'Unknown' }}s
+ - {{ $log->log_entry['sleep_duration'] ?? $log->log_entry['device_status_stamp']['time_since_last_sleep_start'] ?? 'Unknown' }}s
- Firmware Version:
- - {{ $log->log_entry['device_status_stamp']['current_fw_version'] ?? 'Unknown' }}
+ - {{ $log->log_entry['firmware_version'] ?? $log->log_entry['device_status_stamp']['current_fw_version'] ?? 'Unknown' }}
- Special Function:
- - {{ $log->log_entry['device_status_stamp']['special_function'] ?? 'None' }}
+ - {{ $log->log_entry['special_function'] ?? $log->log_entry['device_status_stamp']['special_function'] ?? 'None' }}
- Battery Voltage:
- - {{ $log->log_entry['device_status_stamp']['battery_voltage'] ?? 'Unknown' }}V
+ - {{ $log->log_entry['battery_voltage'] ?? $log->log_entry['device_status_stamp']['battery_voltage'] ?? 'Unknown' }}V
- Wakeup Reason:
- - {{ $log->log_entry['device_status_stamp']['wakeup_reason'] ?? 'Unknown' }}
+ - {{ $log->log_entry['wake_reason'] ?? $log->log_entry['device_status_stamp']['wakeup_reason'] ?? 'Unknown' }}
- Free Heap:
- - {{ $log->log_entry['device_status_stamp']['free_heap_size'] ?? 'Unknown' }} bytes
+ - {{ $log->log_entry['free_heap_size'] ?? $log->log_entry['device_status_stamp']['free_heap_size'] ?? 'Unknown' }} bytes
+ @if(isset($log->log_entry['device_status_stamp']['max_alloc_size']))
- Max Alloc Size:
- - {{ $log->log_entry['device_status_stamp']['max_alloc_size'] ?? 'Unknown' }} bytes
+ - {{ $log->log_entry['device_status_stamp']['max_alloc_size'] }} bytes
+ @endif
@@ -161,11 +174,11 @@ new class extends Component {
- Source File:
- - {{ $log->log_entry['log_sourcefile'] ?? 'Unknown' }}
+ - {{ $log->log_entry['source_path'] ?? $log->log_entry['log_sourcefile'] ?? 'Unknown' }}
- Line Number:
- - {{ $log->log_entry['log_codeline'] ?? 'Unknown' }}
+ - {{ $log->log_entry['source_line'] ?? $log->log_entry['log_codeline'] ?? 'Unknown' }}
@if(isset($log->log_entry['additional_info']))
diff --git a/routes/api.php b/routes/api.php
index 9b2ef70..bbe274d 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -8,6 +8,7 @@ use App\Models\User;
use App\Services\ImageGenerationService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Blade;
+use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
@@ -222,7 +223,16 @@ Route::post('/log', function (Request $request) {
'last_log_request' => $request->json()->all(),
]);
- $logs = $request->json('log.logs_array', []);
+ $logs = [];
+ // Revised format: {"logs": [...]}
+ if ($request->has('logs')) {
+ $logs = $request->json('logs', []);
+ }
+ // Fall back to old format: {"log": {"logs_array": [...]}}
+ elseif ($request->has('log.logs_array')) {
+ $logs = $request->json('log.logs_array', []);
+ }
+
foreach ($logs as $log) {
Log::info('Device Log', $log);
DeviceLog::create([
diff --git a/tests/Feature/Api/DeviceEndpointsTest.php b/tests/Feature/Api/DeviceEndpointsTest.php
index db1791c..7e8fbdf 100644
--- a/tests/Feature/Api/DeviceEndpointsTest.php
+++ b/tests/Feature/Api/DeviceEndpointsTest.php
@@ -192,6 +192,34 @@ test('device can submit logs', function () {
expect($device->fresh()->last_log_request)
->toBe($logData);
+
+ expect($device->logs()->count())->toBe(1);
+});
+
+test('device can submit logs in revised format', function () {
+ $device = Device::factory()->create([
+ 'mac_address' => '00:11:22:33:44:55',
+ 'api_key' => 'test-api-key',
+ ]);
+
+ $logData = [
+ 'logs' => [
+ ['message' => 'Test log message', 'level' => 'info'],
+ ],
+ ];
+
+ $response = $this->withHeaders([
+ 'id' => $device->mac_address,
+ 'access-token' => $device->api_key,
+ ])->postJson('/api/log', $logData);
+
+ $response->assertOk()
+ ->assertJson(['status' => '200']);
+
+ expect($device->fresh()->last_log_request)
+ ->toBe($logData);
+
+ expect($device->logs()->count())->toBe(1);
});
// test('authenticated user can update device display', function () {