diff --git a/app/Http/Controllers/StreamerController.php b/app/Http/Controllers/StreamerController.php index 789e9d2..7d4684b 100644 --- a/app/Http/Controllers/StreamerController.php +++ b/app/Http/Controllers/StreamerController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\Models\Streamer; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Cache; + class StreamerController extends Controller { @@ -22,4 +24,15 @@ class StreamerController extends Controller { // } + + /** + * API: JSON response of all streamers. + * Data is cached for 12 hours. + */ + public function all() + { + $streamers = Cache::remember('streamersListAllAPICache', 60 * 60 * 12, static fn () => Streamer::orderBy('champion_id')->get()); + + return response()->json($streamers); + } } diff --git a/app/Http/Controllers/StreamerPanelController.php b/app/Http/Controllers/StreamerPanelController.php index 50f9041..9a26b4e 100644 --- a/app/Http/Controllers/StreamerPanelController.php +++ b/app/Http/Controllers/StreamerPanelController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Models\Streamer; use App\Models\Champion; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Cache; class StreamerPanelController extends Controller { @@ -41,6 +42,8 @@ class StreamerPanelController extends Controller Streamer::create($request->all()); + Cache::forget('streamersListAllAPICache'); + return redirect()->route('streamerpanel.index'); } @@ -69,6 +72,8 @@ class StreamerPanelController extends Controller $streamer->update($request->all()); + Cache::forget('streamersListAllAPICache'); + return redirect()->route('streamerpanel.index'); } @@ -79,6 +84,8 @@ class StreamerPanelController extends Controller { $streamer->delete(); + Cache::forget('streamersListAllAPICache'); + return redirect()->route('streamerpanel.index'); } } diff --git a/routes/api.php b/routes/api.php index a2a44f1..253b3bd 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,12 +1,5 @@