b2in/app/Http/Controllers/Api/DisplayVersionApiController.php

49 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Display;
use App\Services\DisplayPlaylistConfigBuilder;
use Illuminate\Http\JsonResponse;
class DisplayVersionApiController extends Controller
{
public function config(Display $display, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse
{
if (! $display->is_active) {
return response()->json(['error' => 'Display not configured'], 404);
}
$playlist = $display->livePlaylist()
->with('modules.items')
->first();
if (! $playlist || $playlist->modules->isEmpty()) {
return response()->json(['error' => 'Display not configured'], 404);
}
return response()->json($configBuilder->fromPlaylist($playlist));
}
public function check(Display $display, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse
{
if (! $display->is_active) {
return response()->json(['error' => 'Display not configured'], 404);
}
$playlist = $display->livePlaylist()
->with('modules.items')
->first();
if (! $playlist || $playlist->modules->isEmpty()) {
return response()->json(['error' => 'Display not configured'], 404);
}
$config = $configBuilder->fromPlaylist($playlist);
return response()->json([
'updated_at' => $config['updated_at'],
]);
}
}