diff --git a/app/Http/Controllers/StreamerPanelController.php b/app/Http/Controllers/StreamerPanelController.php
index 46e276a..14dcf1a 100644
--- a/app/Http/Controllers/StreamerPanelController.php
+++ b/app/Http/Controllers/StreamerPanelController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Streamer;
+use App\Models\Champion;
use Illuminate\Http\Request;
class StreamerPanelController extends Controller
@@ -22,7 +23,9 @@ class StreamerPanelController extends Controller
*/
public function create()
{
- //
+ return view('streamerpanel.streamer-create', [
+ 'champions' => Champion::all(),
+ ]);
}
/**
@@ -30,7 +33,16 @@ class StreamerPanelController extends Controller
*/
public function store(Request $request)
{
- //
+ $request->validate([
+ 'champion_id' => 'required|exists:champions,id',
+ 'platform' => 'required|in:twitch,youtube,kick,douyu,huya',
+ 'username' => 'required|string',
+ 'displayname' => 'required|string',
+ ]);
+
+ Streamer::create($request->all());
+
+ return redirect()->route('streamerpanel.index');
}
/**
@@ -38,7 +50,10 @@ class StreamerPanelController extends Controller
*/
public function edit(Streamer $streamer)
{
- //
+ return view('streamerpanel.streamer-edit', [
+ 'streamer' => $streamer,
+ 'champions' => Champion::all(),
+ ]);
}
/**
@@ -46,7 +61,16 @@ class StreamerPanelController extends Controller
*/
public function update(Request $request, Streamer $streamer)
{
- //
+ $request->validate([
+ 'champion_id' => 'required|exists:champions,id',
+ 'platform' => 'required|in:twitch,youtube,kick,douyu,huya',
+ 'username' => 'required|string',
+ 'displayname' => 'required|string',
+ ]);
+
+ $streamer->update($request->all());
+
+ return redirect()->route('streamerpanel.index');
}
/**
@@ -54,6 +78,8 @@ class StreamerPanelController extends Controller
*/
public function destroy(Streamer $streamer)
{
- //
+ $streamer->delete();
+
+ return redirect()->route('streamerpanel.index');
}
}
diff --git a/app/View/Components/Streamerpanel/StreamerCreateForm.php b/app/View/Components/Streamerpanel/StreamerCreateForm.php
new file mode 100644
index 0000000..8a15adb
--- /dev/null
+++ b/app/View/Components/Streamerpanel/StreamerCreateForm.php
@@ -0,0 +1,26 @@
+streamers = $streamers;
+ }
+
+ /**
+ * Get the view / contents that represent the component.
+ */
+ public function render(): View
+ {
+ return view('components.streamerpanel.streamers-table');
+ }
+}
diff --git a/resources/css/app.css b/resources/css/app.css
index a320b96..932803b 100644
--- a/resources/css/app.css
+++ b/resources/css/app.css
@@ -118,4 +118,4 @@
font-style: normal;
font-weight: 900;
src: url('/fonts/inter-v13-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
-}
\ No newline at end of file
+}
diff --git a/resources/views/components/panel-navbar.blade.php b/resources/views/components/panel-navbar.blade.php
index a9f689f..ef8287c 100644
--- a/resources/views/components/panel-navbar.blade.php
+++ b/resources/views/components/panel-navbar.blade.php
@@ -19,13 +19,15 @@
diff --git a/resources/views/components/streamerpanel/home.blade.php b/resources/views/components/streamerpanel/home.blade.php
new file mode 100644
index 0000000..7de05bb
--- /dev/null
+++ b/resources/views/components/streamerpanel/home.blade.php
@@ -0,0 +1,11 @@
+
diff --git a/resources/views/components/streamerpanel/streamer-create-form.blade.php b/resources/views/components/streamerpanel/streamer-create-form.blade.php
new file mode 100644
index 0000000..0b84d38
--- /dev/null
+++ b/resources/views/components/streamerpanel/streamer-create-form.blade.php
@@ -0,0 +1,35 @@
+
diff --git a/resources/views/components/streamerpanel/streamers-table.blade.php b/resources/views/components/streamerpanel/streamers-table.blade.php
new file mode 100644
index 0000000..06e184f
--- /dev/null
+++ b/resources/views/components/streamerpanel/streamers-table.blade.php
@@ -0,0 +1,50 @@
+@push('top_scripts')
+
+
+@endpush
+
+
+
+
+
+@push('bottom_scripts')
+
+@endpush
diff --git a/resources/views/streamerpanel/index.blade.php b/resources/views/streamerpanel/index.blade.php
index 75c6092..946ab91 100644
--- a/resources/views/streamerpanel/index.blade.php
+++ b/resources/views/streamerpanel/index.blade.php
@@ -4,5 +4,6 @@
@section('description', 'Heimerdinger.LoL: Streamer Panel for managing your streamer requests.')
@section('content')
- hello world
+
+
@endsection
diff --git a/resources/views/streamerpanel/streamer-create.blade.php b/resources/views/streamerpanel/streamer-create.blade.php
new file mode 100644
index 0000000..9ecbe22
--- /dev/null
+++ b/resources/views/streamerpanel/streamer-create.blade.php
@@ -0,0 +1,15 @@
+@extends('layouts.streamerpanel')
+
+@section('title', 'Streamer Panel • Heimerdinger.LoL')
+@section('description', 'Heimerdinger.LoL: Streamer Panel for managing your streamer requests.')
+
+@section('content')
+
+
+ Add a new Streamer
+
+
+
+
+@endsection
diff --git a/routes/web.php b/routes/web.php
index d4034a3..8d39281 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -18,6 +18,7 @@ use App\Models\SummonerIcon;
use Illuminate\Support\Facades\Route;
use Spatie\Honeypot\ProtectAgainstSpam;
use Spatie\Sheets\Sheet;
+use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
@@ -81,4 +82,9 @@ Route::get('/resource/sitemap', static fn () => (new HTMLSitemapController())->i
Route::get(config('app.login_route'), static fn () => redirect('/pulse'))->name('login')->middleware('auth.basic');
// Streamer Panel
-Route::get('/streamerpanel', static fn () => (new \App\Http\Controllers\StreamerPanelController())->index())->name('streamers.index')->middleware('auth.basic');
+Route::get('/streamerpanel', static fn () => (new \App\Http\Controllers\StreamerPanelController())->index())->name('streamerpanel.index')->middleware('auth.basic');
+Route::get('/streamerpanel/add', static fn () => (new \App\Http\Controllers\StreamerPanelController())->create())->name('streamerpanel.streamers.create')->middleware('auth.basic');
+Route::post('/streamerpanel/add', static fn (Request $request) => (new \App\Http\Controllers\StreamerPanelController())->store($request))->name('streamerpanel.store')->middleware('auth.basic');
+Route::get('/streamerpanel/edit/{streamer}', static fn (\App\Models\Streamer $streamer) => (new \App\Http\Controllers\StreamerPanelController())->edit($streamer))->name('streamerpanel.edit')->middleware('auth.basic');
+Route::post('/streamerpanel/edit/{streamer}', static fn (Request $request, \App\Models\Streamer $streamer) => (new \App\Http\Controllers\StreamerPanelController())->update($request, $streamer))->name('streamerpanel.update')->middleware('auth.basic');
+Route::delete('/streamerpanel/delete/{streamer}', static fn (\App\Models\Streamer $streamer) => (new \App\Http\Controllers\StreamerPanelController())->destroy($streamer))->name('streamerpanel.destroy')->middleware('auth.basic');