mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-03-14 12:23:33 +00:00
feat(#188): support battery-percent header
This commit is contained in:
parent
d9ab052cbc
commit
8400c1eaf1
2 changed files with 37 additions and 2 deletions
|
|
@ -49,8 +49,9 @@ Route::get('/display', function (Request $request) {
|
||||||
'last_refreshed_at' => now(),
|
'last_refreshed_at' => now(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($request->hasHeader('battery-percent')) {
|
$batteryPercent = $request->header('battery-percent') ?? $request->header('percent-charged');
|
||||||
$batteryPercent = (int) $request->header('battery-percent');
|
if ($batteryPercent !== null) {
|
||||||
|
$batteryPercent = (int) $batteryPercent;
|
||||||
$batteryVoltage = $device->calculateVoltageFromPercent($batteryPercent);
|
$batteryVoltage = $device->calculateVoltageFromPercent($batteryPercent);
|
||||||
$device->update([
|
$device->update([
|
||||||
'last_battery_voltage' => $batteryVoltage,
|
'last_battery_voltage' => $batteryVoltage,
|
||||||
|
|
|
||||||
|
|
@ -725,6 +725,40 @@ test('display endpoint updates last_refreshed_at timestamp', function (): void {
|
||||||
->and($device->last_refreshed_at->diffInSeconds(now()))->toBeLessThan(2);
|
->and($device->last_refreshed_at->diffInSeconds(now()))->toBeLessThan(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('display endpoint accepts battery-percent header and updates device', function (): void {
|
||||||
|
$device = Device::factory()->create([
|
||||||
|
'mac_address' => '00:11:22:33:44:56',
|
||||||
|
'api_key' => 'test-api-key-battery',
|
||||||
|
'last_battery_voltage' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->withHeaders([
|
||||||
|
'id' => $device->mac_address,
|
||||||
|
'access-token' => $device->api_key,
|
||||||
|
'battery-percent' => '67',
|
||||||
|
])->get('/api/display')->assertOk();
|
||||||
|
|
||||||
|
$device->refresh();
|
||||||
|
expect($device->battery_percent)->toEqual(67);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('display endpoint accepts Percent-Charged header and updates device', function (): void {
|
||||||
|
$device = Device::factory()->create([
|
||||||
|
'mac_address' => '00:11:22:33:44:57',
|
||||||
|
'api_key' => 'test-api-key-percent-charged',
|
||||||
|
'last_battery_voltage' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->withHeaders([
|
||||||
|
'id' => $device->mac_address,
|
||||||
|
'access-token' => $device->api_key,
|
||||||
|
'Percent-Charged' => '51',
|
||||||
|
])->get('/api/display')->assertOk();
|
||||||
|
|
||||||
|
$device->refresh();
|
||||||
|
expect($device->battery_percent)->toEqual(51);
|
||||||
|
});
|
||||||
|
|
||||||
test('display endpoint updates last_refreshed_at timestamp for mirrored devices', function (): void {
|
test('display endpoint updates last_refreshed_at timestamp for mirrored devices', function (): void {
|
||||||
// Create source device
|
// Create source device
|
||||||
$sourceDevice = Device::factory()->create([
|
$sourceDevice = Device::factory()->create([
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue