mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-13 23:18:10 +00:00
feat: add function to pause screen generation for up to 480min
chore: code quality
This commit is contained in:
parent
4fb5f54e18
commit
7e355c2d92
10 changed files with 207 additions and 25 deletions
|
|
@ -56,7 +56,11 @@ Route::get('/display', function (Request $request) {
|
|||
]);
|
||||
}
|
||||
|
||||
if ($device->isSleepModeActive()) {
|
||||
if ($device->isPauseActive()) {
|
||||
$image_path = 'images/sleep.png';
|
||||
$filename = 'sleep.png';
|
||||
$refreshTimeOverride = (int) now()->diffInSeconds($device->pause_until);
|
||||
} elseif ($device->isSleepModeActive()) {
|
||||
$image_path = 'images/sleep.png';
|
||||
$filename = 'sleep.png';
|
||||
$refreshTimeOverride = $device->getSleepModeEndsInSeconds() ?? $device->default_refresh_interval;
|
||||
|
|
@ -293,6 +297,11 @@ Route::get('/display/status', function (Request $request) {
|
|||
'wifi_strength',
|
||||
'current_screen_image',
|
||||
'default_refresh_interval',
|
||||
'sleep_mode_enabled',
|
||||
'sleep_mode_from',
|
||||
'sleep_mode_to',
|
||||
'special_function',
|
||||
'pause_until',
|
||||
'updated_at',
|
||||
]),
|
||||
);
|
||||
|
|
@ -300,6 +309,48 @@ Route::get('/display/status', function (Request $request) {
|
|||
->name('display.status')
|
||||
->middleware('auth:sanctum');
|
||||
|
||||
Route::post('/display/status', function (Request $request) {
|
||||
$request->validate([
|
||||
'device_id' => 'required|exists:devices,id',
|
||||
'name' => 'string|max:255',
|
||||
'default_refresh_interval' => 'integer|min:1',
|
||||
'sleep_mode_enabled' => 'boolean',
|
||||
'sleep_mode_from' => 'nullable|date_format:H:i',
|
||||
'sleep_mode_to' => 'nullable|date_format:H:i',
|
||||
'pause_until' => 'nullable|date|after:now',
|
||||
]);
|
||||
|
||||
$deviceId = $request['device_id'];
|
||||
abort_unless($request->user()->devices->contains($deviceId), 403);
|
||||
|
||||
$fieldsToUpdate = $request->only(['name', 'default_refresh_interval', 'sleep_mode_enabled', 'sleep_mode_from', 'sleep_mode_to', 'pause_until']);
|
||||
Device::find($deviceId)->update($fieldsToUpdate);
|
||||
|
||||
return response()->json(
|
||||
Device::find($deviceId)->only([
|
||||
'id',
|
||||
'mac_address',
|
||||
'name',
|
||||
'friendly_id',
|
||||
'last_rssi_level',
|
||||
'last_battery_voltage',
|
||||
'last_firmware_version',
|
||||
'battery_percent',
|
||||
'wifi_strength',
|
||||
'current_screen_image',
|
||||
'default_refresh_interval',
|
||||
'sleep_mode_enabled',
|
||||
'sleep_mode_from',
|
||||
'sleep_mode_to',
|
||||
'special_function',
|
||||
'pause_until',
|
||||
'updated_at',
|
||||
]),
|
||||
);
|
||||
})
|
||||
->name('display.status.post')
|
||||
->middleware('auth:sanctum');
|
||||
|
||||
Route::get('/current_screen', function (Request $request) {
|
||||
$access_token = $request->header('access-token');
|
||||
$device = Device::where('api_key', $access_token)->first();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue