feat: icon list + search functionality

This commit is contained in:
Rico van Zelst
2023-11-15 13:58:12 +01:00
parent cc2ebc8899
commit cea55e776c
25 changed files with 402 additions and 41 deletions

View File

@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers;
use App\Models\SummonerIcon;
use Illuminate\Http\Request;
use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\QueryBuilder;
class SummonerIconController extends Controller
{
public function index()
{
$icons = QueryBuilder::for(SummonerIcon::class)
->allowedFilters('title')
->defaultSort('icon_id')
->paginate(72)
->appends(request()->query());
return view('icons.index', compact('icons'));
}
public function store(Request $request)
{
$request->validate([
'icon_id' => ['required', 'integer'],
'title' => ['nullable'],
'release_year' => ['nullable', 'integer'],
'legacy' => ['required'],
'image' => ['required'],
'esports_team' => ['nullable'],
'esports_region' => ['nullable'],
'esports_event' => ['nullable'],
'description' => ['nullable'],
]);
return SummonerIcon::create($request->validated());
}
public function show(SummonerIcon $summonerIcon)
{
return $summonerIcon;
}
public function update(Request $request, SummonerIcon $summonerIcon)
{
$request->validate([
'icon_id' => ['required', 'integer'],
'title' => ['nullable'],
'release_year' => ['nullable', 'integer'],
'legacy' => ['required'],
'image' => ['required'],
'esports_team' => ['nullable'],
'esports_region' => ['nullable'],
'esports_event' => ['nullable'],
'description' => ['nullable'],
]);
$summonerIcon->update($request->validated());
return $summonerIcon;
}
public function destroy(SummonerIcon $summonerIcon)
{
$summonerIcon->delete();
return response()->json();
}
}