feat: skin grid info

This commit is contained in:
Rico van Zelst
2023-11-09 14:55:57 +01:00
parent 050c8c7975
commit c542a2421b
8 changed files with 275 additions and 8 deletions

View File

@@ -51,7 +51,25 @@ class ChampionSkinController extends Controller
*/
public function show(ChampionSkin $championSkin)
{
//
$skin = Cache::remember(
'championSkinShowCache' . $championSkin->slug,
60 * 60 * 8,
function () use ($championSkin) {
return $championSkin->load('champion', 'chromas');
}
);
$splashColor = Cache::remember(
'championSkinSplashColorCache' . $championSkin->slug,
60 * 60 * 24,
function () use ($championSkin) {
return getAverageColorFromImageUrl($championSkin->getSkinImageAttribute());
}
);
$skin->splash_color = $splashColor;
return view('skins.show', compact('skin'));
}
/**

View File

@@ -35,6 +35,11 @@ class SkinChroma extends Model
public function skin(): BelongsTo
{
return $this->belongsTo(Skin::class);
return $this->belongsTo(ChampionSkin::class, 'full_skin_id', 'full_skin_id');
}
public function getChromaImageAttribute()
{
return 'https://raw.communitydragon.org/pbe/plugins/rcp-be-lol-game-data/global/default/v1/champion-chroma-images/' . $this->skin->champion_id . '/' . $this->chroma_id . '.png';
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\View\Components\Skins;
use App\Models\ChampionSkin;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class Grid_info extends Component
{
public function __construct(public ChampionSkin $skin)
{
}
public function render(): View
{
return view('components.skins.grid_info');
}
}