mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-13 23:18:10 +00:00
feat: add api endpoint /devices
This commit is contained in:
parent
8d7a53b888
commit
fd18cf5246
2 changed files with 57 additions and 0 deletions
|
|
@ -187,6 +187,21 @@ Route::get('/user', function (Request $request) {
|
||||||
return $request->user();
|
return $request->user();
|
||||||
})->middleware('auth:sanctum');
|
})->middleware('auth:sanctum');
|
||||||
|
|
||||||
|
Route::get('/devices', function (Request $request) {
|
||||||
|
$devices = $request->user()->devices()->get([
|
||||||
|
'id',
|
||||||
|
'name',
|
||||||
|
'friendly_id',
|
||||||
|
'mac_address',
|
||||||
|
'last_battery_voltage as battery_voltage',
|
||||||
|
'last_rssi_level as rssi'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'data' => $devices
|
||||||
|
]);
|
||||||
|
})->middleware('auth:sanctum');
|
||||||
|
|
||||||
Route::post('/display/update', function (Request $request) {
|
Route::post('/display/update', function (Request $request) {
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'device_id' => 'required|exists:devices,id',
|
'device_id' => 'required|exists:devices,id',
|
||||||
|
|
|
||||||
|
|
@ -422,3 +422,45 @@ test('current_screen endpoint requires valid device credentials', function () {
|
||||||
$response->assertNotFound()
|
$response->assertNotFound()
|
||||||
->assertJson(['message' => 'Device not found or invalid access token']);
|
->assertJson(['message' => 'Device not found or invalid access token']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('authenticated user can fetch their devices', function () {
|
||||||
|
$user = User::factory()->create();
|
||||||
|
$devices = Device::factory()->count(2)->create([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'last_battery_voltage' => 3.72,
|
||||||
|
'last_rssi_level' => -63,
|
||||||
|
]);
|
||||||
|
|
||||||
|
Sanctum::actingAs($user);
|
||||||
|
|
||||||
|
$response = $this->getJson('/api/devices');
|
||||||
|
|
||||||
|
$response->assertOk()
|
||||||
|
->assertJsonStructure([
|
||||||
|
'data' => [
|
||||||
|
'*' => [
|
||||||
|
'id',
|
||||||
|
'name',
|
||||||
|
'friendly_id',
|
||||||
|
'mac_address',
|
||||||
|
'battery_voltage',
|
||||||
|
'rssi'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
])
|
||||||
|
->assertJsonCount(2, 'data');
|
||||||
|
|
||||||
|
// Verify the first device's data
|
||||||
|
$response->assertJson([
|
||||||
|
'data' => [
|
||||||
|
[
|
||||||
|
'id' => $devices[0]->id,
|
||||||
|
'name' => $devices[0]->name,
|
||||||
|
'friendly_id' => $devices[0]->friendly_id,
|
||||||
|
'mac_address' => $devices[0]->mac_address,
|
||||||
|
'battery_voltage' => 3.72,
|
||||||
|
'rssi' => -63
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue